Witam mam problem nie umiem dołączyć dialogu do okna macierzystego jezeli ktos by mugł mi dać jakiś dobry kurs lub ktoś z nudów by przerobił mój kod był bym wdzięczny.
#include
#include
#define WIN32_LEAN_AND_MEAN
///////P R Z Y C I S K I//////////
//////////////////////////////////
#define ID_PRZYCISK1 501 //
#define ID_PRZYCISK2 502 //
#define ID_PRZYCISK3 503 //
#define ID_PRZYCISK4 504 //
#define ID_PRZYCISK5 505 //
#define ID_PRZYCISK6 506 //
#define ID_PRZYCISK7 507 //
//////////////////////////////////
// nazwa klasy okna
std::string g_strKlasaOkna = "od0dogk_Window";
// --- procedura zdarzeniowa okna ---
LRESULT CALLBACK WindowEventProc(HWND hWindow, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_COMMAND:
{
if(LOWORD(wParam) == /*ID Menu np*/ 101)
{
}}{
if(LOWORD(wParam) == /*ID Menu np*/ 200)
{
PostQuitMessage (0);
}}{
if(LOWORD(wParam) == /*ID Menu np*/ 103)
{
MessageBox (NULL, "To jest komunikat", "Okno komunikatu", MB_OK | MB_ICONINFORMATION);
}}{
if(LOWORD(wParam) == /*ID Menu np*/ 104)
{
MessageBox (NULL, "To jest komunikat", "Okno komunikatu", MB_OK | MB_ICONINFORMATION);
}}{
if(LOWORD(wParam) == /*ID Menu np*/ 105)
{
MessageBox (NULL, "To jest komunikat", "Okno komunikatu", MB_OK | MB_ICONINFORMATION);
}}{
if(LOWORD(wParam) == /*ID Menu np*/ 201)
{
MessageBox (NULL, " Nie znależonio pliku! \n Zła wersja aplikacji! \n Aktualizuj ten program!", "Error", MB_OK | MB_ICONERROR);
}}{
if(LOWORD(wParam) == 202)
{
MessageBox (NULL, " Autor: Kamil Zaremba \n Wersja: 1.0 \n Wydanie: 2008 \n Copyright By Degrentes \n Wszelkie Prawa Zastrzeżone", "Info", MB_OK | MB_ICONINFORMATION);
}}
switch(wParam)
{
case ID_PRZYCISK1:
MessageBox(NULL, "Wcisnąłeś przycisk 1", "Test", MB_ICONINFORMATION);
break;
case ID_PRZYCISK2:
MessageBox(NULL, "Wcisnąłeś przycisk 2", "Test", MB_ICONINFORMATION);
break;
case ID_PRZYCISK3:
MessageBox(NULL, "Wcisnąłeś przycisk 3", "Test", MB_ICONINFORMATION);
break;
case ID_PRZYCISK4:
MessageBox(NULL, "Wcisnąłeś przycisk 4", "Test", MB_ICONINFORMATION);
break;
case ID_PRZYCISK5:
MessageBox(NULL, "Wcisnąłeś przycisk 5", "Test", MB_ICONINFORMATION);
break;
case ID_PRZYCISK6:
MessageBox(NULL, "Wcisnąłeś przycisk 6", "Test", MB_ICONINFORMATION);
break;
case ID_PRZYCISK7:
MessageBox(NULL, "Wcisnąłeś przycisk 7", "Test", MB_ICONINFORMATION);
break;
}
break;
case WM_DESTROY:
if (UINT uWyjscie = MessageBox(NULL, "Czy Napewno chcesz wyjść z programu?",
"Wyjscie", MB_YESNO | MB_ICONQUESTION))
{
switch (uWyjscie)
{
case IDYES:
PostQuitMessage (0);
break;
case IDNO:
break;
}
}
else
{
}
return 0;
}
return DefWindowProc(hWindow, uMsg, wParam, lParam);
}
//HWND hOknoText;
// --- funkcja WinMain() ---
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow)
{
WNDCLASSEX KlasaOkna;
HBITMAP hBitmapa;
HBRUSH hbrPedzelOkna;
// tworzymy pędzel wypełnienia okna
hBitmapa = (HBITMAP) LoadImage(NULL, "item\\Menu\\pattern.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
hbrPedzelOkna = CreatePatternBrush(hBitmapa);
// wypełniamy strukturę WNDCLASSEX
ZeroMemory (&KlasaOkna, sizeof(WNDCLASSEX));
KlasaOkna.cbSize = sizeof(WNDCLASSEX);
KlasaOkna.hInstance = hInstance;
KlasaOkna.lpfnWndProc = WindowEventProc;
KlasaOkna.lpszClassName = g_strKlasaOkna.c_str();
KlasaOkna.hCursor = LoadCursor(hInstance,"KURSOREK");
KlasaOkna.hIcon = LoadIcon(hInstance, "IKONAA");
KlasaOkna.hbrBackground = hbrPedzelOkna; // przypisujemy swój pędzel
// rejestrujemy klasę okna
RegisterClassEx (&KlasaOkna);
HMENU hMenu; // uchwyt naszego menu
hMenu = LoadMenu( hInstance, MAKEINTRESOURCE(200));
//Obrazki Przy Górnym Menu
//Muszą mnieć 13x13 px
HBITMAP hbmmenu2 = (HBITMAP)LoadImage(hInstance, "\\item\\Menu\\menu2.bmp", //Obrazek
IMAGE_BITMAP, 0,0, LR_LOADFROMFILE|LR_LOADTRANSPARENT); //Koniec Grfy
SetMenuItemBitmaps(hMenu, 201, MF_BYCOMMAND, hbmmenu2, hbmmenu2); //
HBITMAP hbmmenu3 = (HBITMAP)LoadImage(hInstance, "item\\Menu\\menu3.bmp", //Obrazek
IMAGE_BITMAP, 0,0, LR_LOADFROMFILE|LR_LOADTRANSPARENT); // Pauza
SetMenuItemBitmaps(hMenu, 202, MF_BYCOMMAND, hbmmenu3, hbmmenu3); //
HBITMAP hbmmenu4 = (HBITMAP)LoadImage(hInstance, "item\\Menu\\menu4.bmp", //Obrazek
IMAGE_BITMAP, 0,0, LR_LOADFROMFILE|LR_LOADTRANSPARENT); //Zapisz
SetMenuItemBitmaps(hMenu, 203, MF_BYCOMMAND, hbmmenu4, hbmmenu4); //
HBITMAP hbmmenu5 = (HBITMAP)LoadImage(hInstance, "item\\Menu\\menu5.bmp", //Obrazek
IMAGE_BITMAP, 0,0, LR_LOADFROMFILE|LR_LOADTRANSPARENT); //Wyczytaj
SetMenuItemBitmaps(hMenu, 104, MF_BYCOMMAND, hbmmenu5, hbmmenu5); //
HBITMAP hbmmenu6 = (HBITMAP)LoadImage(hInstance, "item\\Menu\\menu6.bmp", //Obrazek
IMAGE_BITMAP, 0,0, LR_LOADFROMFILE|LR_LOADTRANSPARENT); //Cały Ekran
SetMenuItemBitmaps(hMenu, 105, MF_BYCOMMAND, hbmmenu6, hbmmenu6); //
HBITMAP hbmmenu7 = (HBITMAP)LoadImage(hInstance, "\item.pak\item\Menu\menu7.bmp", //Obrazek
IMAGE_BITMAP, 0,0, LR_LOADFROMFILE|LR_LOADTRANSPARENT); //Pomoc - Gangsta Paradise
SetMenuItemBitmaps(hMenu, 106, MF_BYCOMMAND, hbmmenu7, hbmmenu7); //
/* tworzymy okno */
// tworzymy okno funkcją CreateWindowEx
HWND hOkno;
hOkno = CreateWindowEx(NULL, // rozszerzony styl okna
g_strKlasaOkna.c_str(), // klasa okna
"Gangsta Paradise", // tekst na pasku tytułu
WS_OVERLAPPEDWINDOW, // styl okna
CW_USEDEFAULT, // współrzędna pozioma
CW_USEDEFAULT, // współrzędna pionowa
509, // szerokość
450, // wysokość
NULL, // uchwyt do okna nadrzędnego
hMenu, // uchwyt do menu
hInstance, // uchwyt do instancji aplikacji
NULL); // dodatkowe dane
// Przyciski
HWND hButton1 = CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "Pierwszy", WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 30, hOkno, (HMENU)ID_PRZYCISK1, hInstance, NULL),
hButton2 = CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "Drugi" , WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 100, 150, 30, hOkno, (HMENU)ID_PRZYCISK2, hInstance, NULL),
hButton3 = CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "Trzeci" , WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 150, 150, 30, hOkno, (HMENU)ID_PRZYCISK3, hInstance, NULL),
hButton4 = CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "Czwarty" , WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 200, 150, 30, hOkno, (HMENU)ID_PRZYCISK4, hInstance, NULL);
hButton4 = CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "Piąty" , WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 250, 150, 30, hOkno, (HMENU)ID_PRZYCISK5, hInstance, NULL),
hButton4 = CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "Szusty" , WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 300, 150, 30, hOkno, (HMENU)ID_PRZYCISK6, hInstance, NULL),
hButton4 = CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "Siódmy" , WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 350, 150, 30, hOkno, (HMENU)ID_PRZYCISK7, hInstance, NULL);
//hOknoText = CreateWindowEx(0,"EDIT",NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_EX_CLIENTEDGE , 270, 50, 150, 20, hOkno, NULL, hInstance, NULL);
// pokazujemy nasze okno
ShowWindow (hOkno, nCmdShow);
/* pętla komunikatów */
MSG msgKomunikat;
while (GetMessage(&msgKomunikat, NULL, 0, 0))
{
TranslateMessage (&msgKomunikat);
DispatchMessage (&msgKomunikat);
}
/* kończymy */
// usuwamy pędzel i zwalniamy wczytaną bitmapę
DeleteObject (hbrPedzelOkna);
DeleteObject (hBitmapa);
// zwracamy kod wyjścia
return static_cast(msgKomunikat.wParam);
}
Pozdro