PDA

View Full Version : [WIN32] Menu a runtime e WinXP look-n-feel


sephiroth7777
02-02-2005, 02:03
Ciao ragazzi,
come avrete notato sono nuovo da queste parti, cmq ho da poco iniziato a smanettare con le Win32Api.
Vorrei sapere se è possibile creare Menu runtime e non usando un file Rc. Inoltre vorrei sapere come posso fare a dare ai miei programmi il look-n-feel di WinXP. :muro:

Grazie di tutto

Ps. = Se è possibile postate qualche esempio, possibilmente in C,C++ o ASM (meglio i primi due :) )

kk3z
02-02-2005, 09:17
da http://www.winprog.org/tutorial/menus.html (winprogr.org/menus.html)

case WM_CREATE:
{
HMENU hMenu, hSubMenu;
HICON hIcon, hIconSm;

hMenu = CreateMenu();

hSubMenu = CreatePopupMenu();
AppendMenu(hSubMenu, MF_STRING, ID_FILE_EXIT, "E&xit");
AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&File");

hSubMenu = CreatePopupMenu();
AppendMenu(hSubMenu, MF_STRING, ID_STUFF_GO, "&Go");
AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Stuff");

SetMenu(hwnd, hMenu);
}

che è lo stesso di IDR_MYMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "E&xit", ID_FILE_EXIT
END

POPUP "&Stuff"
BEGIN
MENUITEM "&Go", ID_STUFF_GO
END
END

Per permettere ai tuoi programmi di usare lo stile di windows devi usare un manifesto.
Se usi dev-cpp
1) vai nelle opzioni del progetto -> generale -> supporta temi di XP
2) includi commctrl.h e linka la libreria libcomctl32.a
3) in WinMain, inserisci InitCommonControls();
4) ricompila il progetto.

Se stai usando visual c++ vai qui (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/userex/cookbook.asp) e scorri la pagina fino a "To create a manifest and enable your application to use visual styles."

sephiroth7777
02-02-2005, 12:09
Grazie... veramente tutto molto utile, sito compreso!

Non è che sai anche come creare con le Win32api dei Pannelli tipo quelli Java su cui applicare altri componenti?

kk3z
02-02-2005, 12:18
Non ho capito :wtf: non ho mai usato nè java come linguaggio nè come programma :boh: Fammi uno screenshot se riesci.

Forse intendi il tab control? O la toolbar (tipo quella di emule?)