C說話+win32api寫窗體運用法式。本站提示廣大學習愛好者:(C說話+win32api寫窗體運用法式)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話+win32api寫窗體運用法式正文
昨晚看了一下win32api編程的常識,我在網上搜刮了很多教程,一個丑化版的windows編程,代碼訛奪百出,缺字,翻譯難明僵硬,術語不專業,一個windows.c編程,隱約,並且用的是VC++6.0,因為我的電腦裝不上vc++6.0,只能用vs2008,很多操作和函數都不太一樣了。在網上找到一篇博客園的win32api編程的文章,照抄上去,成果編譯上去幾十個毛病……暈逝世了。
後來照樣參照以下四個步調,本身查MSDN用C說話寫出來了,暈逝世,英文欠好,話說,金山詞霸對MSDN的整句翻譯很專業啊。
步調:
1、注冊窗口類;
2、創立窗體;
3、新聞輪回;
4、編寫窗口新聞處置函數。
代碼:
#include <windows.h>
#include<tchar.h>
LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPI _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR szCmdLine, int nCmdShow)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = NULL;
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;//(HBRUSH)GetStockObject();
wc.lpszMenuName = NULL;
wc.lpszClassName = _T("MyWindowClass");
if (!RegisterClass(&wc))
{
MessageBox (NULL, _T("沒法注冊窗口類"), _T("毛病"), MB_OK);
return 0 ;
}
HWND newWindow = CreateWindow(
_T("MyWindowClass"),
_T("我的第一個winapi法式"),
WS_OVERLAPPEDWINDOW,
0,
0,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if (NULL == newWindow)
{
MessageBox (NULL, _T("沒法創立窗體"), _T("毛病"), MB_OK);
return 0;
}
ShowWindow(newWindow, nCmdShow);
UpdateWindow(newWindow);
MSG msg;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
default :
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
就是一個只要題目欄、封閉按鈕、最小化按鈕、最年夜化/復原按鈕、顯示區域的窗體。
用純C寫的,愁悶逝世了,好長啊,win32api超等多宏的,又愛又恨,煩逝世了