Win32最简单的程序
阅读原文时间:2023年07月15日阅读:1

#include
#include
#include

LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
WNDCLASS wndcls;
wndcls.cbClsExtra = ;
wndcls.cbWndExtra = ;
wndcls.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wndcls.hCursor = LoadCursor(NULL,IDC_ARROW);
wndcls.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndcls.hInstance = hInstance;
wndcls.lpfnWndProc = WinSunProc;
wndcls.lpszClassName = _T("sunxin2006");
wndcls.lpszMenuName = NULL;
wndcls.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);

HWND hwnd = CreateWindow(\_T("sunxin2006"),\_T("helloworld"),WS\_OVERLAPPEDWINDOW,  
    ,,,,NULL,NULL,hInstance,NULL);  
ShowWindow(hwnd,SW\_SHOW);  
UpdateWindow(hwnd);

MSG msg;  
while(GetMessage(&msg,NULL,,)>)  
{  
    TranslateMessage(&msg);  
    DispatchMessage(&msg);  
}  
return msg.wParam;  

}

VOID OnCreate(HWND hwnd,WPARAM wParam,LPARAM lParam)
{
int scrWidth,scrHeight;
RECT rect;
//获得屏幕尺寸
scrWidth = GetSystemMetrics(SM_CXSCREEN);
scrHeight = GetSystemMetrics(SM_CYSCREEN);
//取得窗口尺寸
GetWindowRect(hwnd,&rect);
//重新设置rect里的值
rect.left = (scrWidth-rect.right)/;
rect.top = (scrHeight-rect.bottom)/;
//移动窗口到指定的位置
SetWindowPos(hwnd,HWND_TOP,rect.left,rect.top,rect.right,rect.bottom,SWP_SHOWWINDOW);
}
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CHAR:
char szChar[];
sprintf_s(szChar,_T("char code is %d(%c)"),wParam,(char)(wParam));
MessageBox(hwnd,szChar,_T("char"),);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,_T("mouse clicked"),_T("mouse"),);
HDC hdc;
hdc = GetDC(hwnd);
TextOut(hdc,,,_T("程序员之家"),_tcslen(_T("程序员之家"))); ReleaseDC(hwnd,hdc);
break;
case WM_CREATE:
OnCreate(hwnd,wParam,lParam);
break;
case WM_DESTROY:
PostQuitMessage();
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return ;
}

注意:需要设置多字符集,不然编译无法通过。在项目出右击属性。常规->字符集->选择多字符集。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章