永发信息网

windows编程初学,程序成功生成但没有窗口出现

答案:2  悬赏:10  手机版
解决时间 2021-03-16 20:57
  • 提问者网友:温柔港
  • 2021-03-16 12:53
以下是代码,运行时会一直在while循环等待消息,但没有出现窗口

#include
LRESULT CALLBACK Wndproc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hprevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wndclass;
HWND hwnd;
MSG msg;
wndclass.style = CS_HREDRAW | CS_VREDRAW|CS_NOCLOSE;
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.lpszClassName =(LPCWSTR) "THANKS";
wndclass.lpszMenuName = NULL;
if (!RegisterClass(&wndclass))return FALSE;
hwnd = CreateWindowA("win", "win1", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinstance, NULL);
ShowWindow(hwnd, nCmdShow);
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)
{
switch (message)
{
case WM_PAINT:
HDC hdc;
PAINTSTRUCT ps;
hdc = BeginPaint(hwnd, &ps);
TextOutA(hdc, 20, 60, "the first windows application showing window", 35);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;

}
return DefWindowProc(hwnd, message, wParam, lParam);
}
最佳答案
  • 五星知识达人网友:神鬼未生
  • 2021-03-16 14:04
CreateWindowA这个函数的第一个参数应该是类名,就是wndclass.lpszClassName =(LPCWSTR) "THANKS"这个
全部回答
  • 1楼网友:行雁书
  • 2021-03-16 14:31

 char lpszclassname[]="窗口";   //窗口类名   
char lpsztitle[]="my_windows"; //窗口标题名

改成

 wchar lpszclassname[]=l"窗口";   //窗口类名   
 wchar lpsztitle[]=l"my_windows"; //窗口标题名

再试试

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯