Winapiを使ってC++でguiを開発しようとしていますが、VM_CREATEで問題が発生しています。VM_CREATEはうまく動作しますがVM_CREATEのコードは動作しません。これは、私のコード:::(Visual Studioがエラーを与えない)あなたは、むしろグローバルHWNDよりも、静的およびボタンのcreateWindow呼び出しのコールバックでのhWnd入力を使用する必要がありますC++ WIN API:なぜ私はWM_CREATEを使用できないのですか
#include <windows.h>
#include <tchar.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
HWND textfield, hwnd, Button;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
WNDCLASSEX wc;
MSG msg;
memset(&wc, 0, sizeof(wc));
wc.cbSize = sizeof(WNDCLASSEX);
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = L"WindowClass";
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&wc)) {
MessageBox(NULL, L"Window Registration Failed!", L"Error!", MB_ICONEXCLAMATION | MB_OK);
return 0;
}
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, L"WindowClass", L"Window", WS_VISIBLE | WS_MINIMIZEBOX | WS_SYSMENU,
CW_USEDEFAULT,
CW_USEDEFAULT,
500,
500,
NULL, NULL, hInstance, NULL);
while (GetMessage(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE: // WORKS TILL HERE
textfield = CreateWindow(L"STATIC", L"HELLO",
WS_VISIBLE | WS_CHILD | WS_BORDER,
300, 300, 100, 25,
hwnd, NULL, NULL, NULL);
Button = CreateWindow(L"BUTTON",L"Hello this is a button",
WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
20,
20,
300,
300,
hwnd,
NULL,
NULL,
NULL);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;
}
return 0;
}
「機能しない」とはどういう意味ですか?あなたは詳細を教えていただけますか?そして、[良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)に時間を割けてください。 –
それは私がそれを意味していない仕事Windowsとテキストもボタンもないというタイトルのウィンドウがあります –
[この 'WM_CREATE'リファレンス](https://msdn.microsoft.com/en-us/library/windows)を読むことをお勧めします/desktop/ms632619(v=vs.85).aspx)。 –