?? 5_9.cpp
字號(hào):
// HELLO60.C -- Displays "Hello,VC++ 6.0!" in client area
#include <windows.h>//包括了windows函數(shù)和數(shù)據(jù)類型,結(jié)構(gòu),常量,宏
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM) ;//Wndproc是窗口過程函數(shù)名
int WINAPI WinMain( //windows希望winmain使用通用的API函數(shù)調(diào)用約定
HINSTANCE hInstance, //當(dāng)前實(shí)例句柄
HINSTANCE hPrevInstance,//前一個(gè)實(shí)例句柄
LPSTR lpszCmdParam, //指向字符串的指針,這里指向存放內(nèi)存運(yùn)行程序名的緩沖區(qū)
int nCmdShow) //應(yīng)用程序開始執(zhí)行時(shí)窗口的顯示方式,常用SW_SHOWNORMAL
{
static char szAppName[] = "Hello60" ; //窗口類的名字,經(jīng)常為程序名
HWND hwnd ; //窗口句柄
MSG msg ; //消息結(jié)構(gòu)類
WNDCLASS wndclass ; //窗口類
if(!hPrevInstance)
{
wndclass.style = CS_HREDRAW | CS_VREDRAW ;//定義窗口類型為整個(gè)窗口重畫
wndclass.lpfnWndProc= WndProc ; //窗口處理函數(shù)
wndclass.cbClsExtra = 0 ; //不留額外類結(jié)構(gòu)空間(窗口類無擴(kuò)展)
wndclass.cbWndExtra = 0 ; //不留額外窗口結(jié)構(gòu)空間(窗口實(shí)例無擴(kuò)展)
wndclass.hInstance = hInstance ; //設(shè)置winmain的第一個(gè)參數(shù)
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);//IDI_APPLICATION為窗口最小化確省圖標(biāo)
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;//定義窗口采用IDC_ARROW(箭頭)光標(biāo)
wndclass.hbrBackground = (HBRUSH)GetStockObject (LTGRAY_BRUSH) ;//窗口客戶區(qū)的背景為淺灰色
wndclass.lpszMenuName = NULL ; //應(yīng)用程序窗口中沒有菜單,所以菜單名為NULL
wndclass.lpszClassName = szAppName ;//窗口類的名字,一般應(yīng)和程序名字一樣
RegisterClass (&wndclass) ;//這個(gè)函數(shù)用來注冊(cè)窗口類
}
hwnd = CreateWindow ( //該函數(shù)創(chuàng)建一個(gè)窗口實(shí)例
szAppName, // window class name
"The Hello Program", // 窗口實(shí)例標(biāo)題名
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT,CW_USEDEFAULT, // 窗口左上角坐標(biāo)
CW_USEDEFAULT,CW_USEDEFAULT, // 窗口的高和寬
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle of current window
NULL); // creation parameters
ShowWindow (hwnd, nCmdShow) ; //nCmdShow標(biāo)志顯示方式
UpdateWindow (hwnd) ; //繪制用戶區(qū),發(fā)送WM_PAINT消息
while (GetMessage (&msg, NULL, 0, 0))//取得消息,除受到WM_QUIT外,任何消息都返回TRUE
{
TranslateMessage (&msg) ; //對(duì)一些鍵盤消息進(jìn)行翻譯
DispatchMessage (&msg) ; //將消息傳送給在MSG結(jié)構(gòu)中為窗口所指定的消息處理器
}
return msg.wParam ; //程序終止時(shí)告知系統(tǒng)
}
LRESULT CALLBACK WndProc( HWND hwnd, //接收消息的窗口句柄
UINT message, //調(diào)用的消息號(hào)
WPARAM wParam,//消息參數(shù)
LPARAM lParam)//消息參數(shù)
{
HDC hdc ; //設(shè)備句柄
PAINTSTRUCT ps ; //畫刷結(jié)構(gòu)
RECT rect ; //無效矩形區(qū)
static LOGFONT lf;
HFONT holdFont,hnewFont;
switch (message) //消息處理函數(shù)
{
case WM_CREATE: //窗口創(chuàng)建,返回0
return 0;
case WM_PAINT: //繪制消息
lf.lfHeight=-64;
lf.lfWeight=500;
lf.lfPitchAndFamily=DEFAULT_PITCH & FF_DONTCARE;
lf.lfCharSet=GB2312_CHARSET; //選擇字符集
strcpy(lf.lfFaceName,"黑體"); //字符串賦值,設(shè)置字體
hnewFont=CreateFontIndirect(&lf); //創(chuàng)建一種新的邏輯字體
hdc = BeginPaint (hwnd, &ps); //得到設(shè)備環(huán)境句柄 GetClientRect (hwnd, &rect); //得到需要繪制的客戶區(qū)
GetClientRect (hwnd, &rect) ; //得到需要繪制的客戶區(qū)
holdFont=(HFONT)SelectObject(hdc,hnewFont); //選擇新的字體格式,并且保存老的畫筆
SetTextColor(hdc,RGB(255,0,0)); //設(shè)置文本顏色
SetBkColor(hdc,RGB(255,255,0)); //設(shè)置背景顏色
DrawText(hdc, //輸出文本
"VC中顯示字體與背景", //輸出的字符串
-1, //自動(dòng)計(jì)算輸出字符的個(gè)數(shù)
&rect, //輸出文本區(qū)區(qū)域
DT_SINGLELINE|DT_CENTER|DT_VCENTER); //字體輸出在矩形客戶區(qū)的中央
SelectObject(hdc,holdFont); //保存原來的字體格式
DeleteObject(hnewFont); //刪除新的字體格式
EndPaint (hwnd, &ps) ; //結(jié)束繪制,與BeiginPaint函數(shù)配套
return 0 ;
case WM_DESTROY: //退出消息
PostQuitMessage (0) ; //告訴系統(tǒng)退出程序
return 0 ;
}
return DefWindowProc(hwnd,message,wParam,lParam) ;//調(diào)用默認(rèn)函數(shù)處理沒有處理的消息
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -