000
21.10.2003, 12:45 Uhr
~andreasK
Gast
|
Schau mir gerade das Buch über die WinApi an und jetzt hab ich folgenden Code abgetippt und wenn ich den Ausführ bekomm ich das Menü nicht angezeigt, woran kann das liegen?
C++: |
#include <windows.h> #include "resource.h"
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); BOOL CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT("DevCaps1"); HWND hwnd; MSG msg; WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName;
if (!RegisterClass(&wndclass)) { MessageBox(NULL, TEXT("Programm arbeitet mit UNICODe und setzt Win NT voraus!"), szAppName, MB_ICONERROR); return 0; }
hwnd = CreateWindow(szAppName, TEXT("Geräte..."), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, iCmdShow); UpdateWindow(hwnd);
while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HINSTANCE hInstance;
switch (message) { case WM_CREATE: hInstance = ((LPCREATESTRUCT) lParam)->hInstance; return 0;
case WM_COMMAND: switch (LOWORD(wParam)) { case IDM_APP_ABOUT: DialogBox(hInstance, TEXT("AboutBox"), hwnd, AboutDlgProc); break; } return 0;
case WM_DESTROY: PostQuitMessage(0); return 0; }
return DefWindowProc(hwnd, message, wParam, lParam); }
BOOL CALLBACK AboutDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE;
case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: case IDCANCEL: EndDialog(hDlg, 0); return TRUE; } break; } return FALSE; }
|
|