65,211
社区成员
发帖
与我相关
我的任务
分享
#include<windows.h>
#include <stdio.h>
LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
char szClassName[]="窗口";
WNDCLASSEX wndclass;
wndclass.cbSize =sizeof(wndclass);
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc =WindowProc;
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 (DEFAULT_PALETTE);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szClassName;
wndclass.hIconSm =NULL;
::RegisterClassEx (&wndclass);
HWND hWnd=::CreateWindowEx(0, szClassName,"我的窗口",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
if(hWnd==NULL)
{
::MessageBox(NULL,"创建窗口失败!","Error",MB_OK);
return -1;
}
::ShowWindow (hWnd, nShowCmd);
::UpdateWindow(hWnd);
MSG msg;
while(::GetMessage(&msg,NULL,0,0))
{
::TranslateMessage (&msg);
::DispatchMessage(&msg);
}
return msg.wParam ;
}
LRESULT CALLBACK WindowProc(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
char out[]="最简单的窗口程序";
switch(uMsg)
{
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT lpPaint;
hdc=::BeginPaint(hWnd,&lpPaint);
::TextOut(hdc,10,10,out,strlen(out));
::EndPaint(hWnd,&lpPaint);
return 0;
}
case WM_DESTROY:
{
::PostQuitMessage(0);
return 0;
}
}
return ::DefWindowProc (hWnd,uMsg,wParam,lParam);
}