大家帮忙看一下 编写的程序为什么不显示窗口

来源:百度知道 编辑:UC知道 时间:2024/05/13 06:27:54
#include<windows.h>
#include<stdio.h>

LRESULT CALLBACK WindowProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstince,
LPSTR lpCmdLine,
int nCmdShow
)
{
WNDCLASS wndclass;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndclass.hCursor=LoadCursor(NULL,IDC_HELP);
wndclass.hIcon=LoadIcon(NULL,IDI_ERROR);
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=WindowProc;
wndclass.lpszClassName="kaka";
wndclass.lpszMenuName=NULL;
wndclass.style=CS_HREDRAW | CS_VREDRAW | CS_NOCLOSE;

RegisterClass(&wndclass);

HWND hwnd;
hwnd=CreateWindow("kaka","first time",WS_MAXIMIZE,0,0,600,400,NULL,

WindowProc函数中,返回的值不能是0,应该改成:
return DefWindowProc(hwnd,uMsg,wParam,lParam);

一般的窗口消息处理过程与对话框的不同,基本上都应该调用DefWindowProc这个函数来完成消息的处理。

看样子是个耍人的小花招吧,不显示窗口,显示了没系统菜单,还弄个“kaka”,挺无聊的,改进一下把它从进程管理器中隐掉就更厉害了。

LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CHAR:
MessageBox(hwnd,"kaka",NULL,MB_OK);
Break;
Default:
Return DefWindowProc(hWnd,uMsg,wParam,lParam);
};
return 0;
}

检查一下 CreateWindow的 返回值看看