第一个Windows程序

#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK winhehepro(
							HWND hwnd,      // handle to window
							UINT uMsg,      // message identifier
							WPARAM wParam,  // first message parameter
							LPARAM lParam   // second message parameter
							);


int WINAPI WinMain(
				   HINSTANCE hInstance,  // handle to current instance
				   HINSTANCE hPrevInstance,  // handle to previous instance
				   LPSTR lpCmdLine,      // pointer to command line
				   int nCmdShow          // show state of window
				   ) 
{
    WNDCLASS wndcls;
    wndcls.cbClsExtra=0;
    wndcls.cbWndExtra=0;
    wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
    wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
    wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
    wndcls.hInstance=hInstance;
    wndcls.lpfnWndProc=winhehepro;
    wndcls.lpszClassName="hehe";
    wndcls.lpszMenuName=NULL;
    wndcls.style=CS_HREDRAW|CS_VREDRAW;
    RegisterClass(&wndcls);
	
    HWND hwnd;//创建窗口
    hwnd=CreateWindow(
		"hehe",  // pointer to registered class name
		"Jarily", // pointer to window name
		WS_OVERLAPPEDWINDOW,        // window style
		0,                // horizontal position of window
		0,                // vertical position of window
		600,           // window width
		400,          // window height
		NULL,      // handle to parent or owner window
		NULL,          // handle to menu or child-window identifier
		hInstance,     // handle to application instance
		NULL        // pointer to window-creation data
		);
	
    ShowWindow(hwnd,SW_SHOWNORMAL);
    UpdateWindow(hwnd);
	
    MSG msg;//消息循环
    //while(GetMessage(&msg,hwnd,0,0))
	while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
	return msg.wParam;
    //return 0;
}

LRESULT CALLBACK winhehepro(
							HWND hwnd,      // handle to window
							UINT uMsg,      // message identifier
							WPARAM wParam,  // first message parameter
							LPARAM lParam   // second message parameter
							)
{
    switch(uMsg)
    {
    case WM_CHAR:
        char szChar[20];
        sprintf(szChar,"char is %d",wParam);
        MessageBox(hwnd,szChar,"xixi",0);
        break;
    case WM_LBUTTONDOWN:
        MessageBox(hwnd,"left button is checked","xixi",0);
        HDC hdc;
        hdc=GetDC(hwnd);//不能在响应WM_PAINT消息时调用
        TextOut(hdc,0,50,"Hello World!",strlen("Hello World!"));
        ReleaseDC(hwnd,hdc);
        break;
    case WM_PAINT:
        HDC hDC;
        PAINTSTRUCT ps;
        hDC=BeginPaint(hwnd,&ps);//BeginPaint只能在响应WM_PAINT消息时调用
        TextOut(hDC,0,0,"hehe and xixi!",strlen("hehe and xixi!"));
        EndPaint(hwnd,&ps);
        break;
    case WM_CLOSE:
        if(IDYES==MessageBox(hwnd,"是否真的退出窗口?","iloveyou",MB_YESNO))
        {
            DestroyWindow(hwnd);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
		return DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
    return 0;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值