c++调用API实现窗口问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:41:26
#include<windows.h>

LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
{
switch(Msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,Msg,wParam,lParam);
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nShowCmd)
{
char *cName="mywindow";
WNDCLASSEX wc;
HWND hWnd;
MSG Msg;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.cbSize=sizeof(WNDCLASSEX);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor=NULL;
wc.hIcon=NULL;
wc.hInstance=hInstance;
wc.lpfnWndProc=WinProc;
wc.lpszClassName=(LPSTR)cName;
wc.lpszMenuName=NULL;
wc.style=CS_HREDRAW|CS_VREDRAW;
RegisterClassEx(&wc);
hWnd=CreateWindowEx(WS_EX_CLIENTEDGE,cName,"我的窗口",WS_OVERLAPPEDWINDOW,
200,100,600,400,NUL

在RegisterClassEx里就已经失败了,你用GetLastError()就会发现报的是“参数不正确”。
WNDCLASSEX还有一个hIconSm成员你没有设置,再加上这就应该就可以了:
wc.hIconSm = NULL;