?? csdk編程代碼.txt
字號(hào):
#include
#include "resource.h" //這個(gè)頭文件的作用就是定義控件等ID的數(shù)學(xué)值,全部是UINT類型的
#include "generic.h" //頭文件。內(nèi)容見最后面
//2個(gè)全局變量
HINSTANCE _hInst; //主程序句柄
HWND _hWnd;//主窗口句柄
char _szAppName[] = "Generic"; //程序名
char _szTitle[] = "Generic Sample Application"; //窗口名
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//系統(tǒng)自動(dòng)為下面前2個(gè)變量分配非0值
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR lpCmdLine, int nCmdShow)
//第一個(gè)是程序當(dāng)前實(shí)例的句柄,第2個(gè)是程序前一個(gè)實(shí)例的句柄
//在32位操作系統(tǒng)中,hPrevInstance的值總為0,因?yàn)樵?2位系統(tǒng)中
//一個(gè)程序的不同實(shí)例是封裝在不同的地址空間(4GB)中的
{
MSG msg;//定義一個(gè)消息,MSG是一個(gè)windows32位結(jié)構(gòu)體
UNREFERENCED_PARAMETER(lpCmdLine);//避免編譯器出錯(cuò)
if (!hPrevInstance)
if (!InitApplication(hInstance))//調(diào)用下面函數(shù)⑴
return (FALSE);//如果初始化失敗,給系統(tǒng)返回一個(gè)程序失?。篺alse!
if (!InitInstance(hInstance, nCmdShow))//調(diào)用下面函數(shù)(2)
return (FALSE);
//程序的主題:得到消息,處理消息,其中如果得到一個(gè)消息msg為“EXIT”指令消息的話,循環(huán)結(jié)束,程序結(jié)束
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam); //事實(shí)上這最后一個(gè)msg一定是讓程序關(guān)閉的msg,msg是一個(gè)結(jié)構(gòu),里面的mParam保存退出的信息
//返回給系統(tǒng)
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
BOOL InitApplication(HINSTANCE hInstance)//函數(shù)⑴,作用是注冊(cè)程序主窗口
{
WNDCLASS wc;//wc是一個(gè)結(jié)構(gòu),含有11個(gè)參數(shù),是11個(gè),不是10個(gè)!
//這下面寫了10個(gè),還有一個(gè)不知道哪去了,具體請(qǐng)自己去查WIN21APIs,函數(shù)名字creatwindow()
wc.style = CS_HREDRAW | CS_VREDRAW;//窗口的樣式
wc.lpfnWndProc = (WNDPROC)WndProc; //調(diào)用函數(shù)(3),定義這個(gè)窗口怎么樣處理對(duì)應(yīng)的消息
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;//程序進(jìn)程的句柄
wc.hIcon = LoadIcon(hInstance, "jjhouricon");//圖標(biāo)句柄
wc.hCursor = LoadCursor(NULL, IDC_ARROW);//鼠標(biāo)外觀句柄
wc.hbrBackground = GetStockObject(WHITE_BRUSH); //程序背景顏色刷子
wc.lpszMenuName = "GenericMenu"; //菜單名
wc.lpszClassName = _szAppName;//程序名
return (RegisterClass(&wc));//注冊(cè)
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)//函數(shù)(2)
{
_hInst = hInstance;
//產(chǎn)生窗口,但是不顯示出來
_hWnd = CreateWindow(
_szAppName,//程序名
_szTitle,//窗口名
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);//這些具體的值的意義可以從WIN32API中獲得
//確認(rèn)
if (!_hWnd)
return (FALSE);
//顯示窗口
ShowWindow(_hWnd, nCmdShow);
UpdateWindow(_hWnd);
return (TRUE);
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam)//函數(shù)(3)
{
int wmId, wmEvent;
switch (message)
{
case WM_COMMAND://普通的命令??梢院?jiǎn)單理解為鼠標(biāo)單擊菜單所產(chǎn)生的消息
wmId = LOWORD(wParam);//wParam是一個(gè)32位的。這里得到32位中的底16為所保存的值----消息的ID
wmEvent = HIWORD(wParam);
switch (wmId) {
case IDM_ABOUT:
DialogBox(_hInst,
"AboutBox",
hWnd,
(DLGPROC)About //調(diào)用函數(shù)(4)
);//產(chǎn)生關(guān)于對(duì)話框
break;
case IDM_EXIT:
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -