遍匈 / windows園殻 /

Windows static陣周?床蓑猟云崇陣周?

<貧匯准 和匯准>
聞喘 TextOut 才 DrawText 痕方嗤扮昨氏音圭宴?箭泌?
  • 猟云音嬬徭強算佩?階竃完笥袈律氏瓜咨茄?
  • 耽肝厚個猟云脅勣枠価茅嘘尚壅嶷仟補竃?曳熟醍軍。

糞縞蝕窟嶄匯違聞喘床蓑猟云崇陣周栖補竃猟云。床蓑猟云崇頁Windows 議匯嶽炎彈陣周?辛參喘栖壓完笥貧?塋紹散領脹升??厠脹照殯彿楜戎慟董3鎣望果n脹梢鬘?Windows議炎彈陣周珊嗤載謹嶽?箭泌梓泥、和性暇汽、汽僉梓泥、鹸僉崇吉。

凪糞?陣周匆頁匯嶽完笥?匆聞喘 CreateWindow 痕方栖幹秀。徽頁万断聞喘議完笥窃議兆忖曳熟蒙歩?頁喇Windows圓協吶議?床蓑猟云崇陣周議完笥窃兆頁static

嚥念中幹秀議鏡羨完笥音揖?陣周頁徨完笥?幹秀扮駅倬峺協幻完笥?宸劔陣周嘉嬬嗤“拷奉”。

厘断枠栖指綱匯和 CreateWindow 痕方議圻侏?
HWND CreateWindow(
 LPCWSTR lpClassName, //完笥窃兆
 LPCWSTR lpWindowName, //完悶炎籾?賜陣周猟云?
 DWORD dwStyle, //完笥/陣周劔塀
 int x, //完笥屢斤彑中?賜徨完笥屢斤幻完笥?議 X 恫炎
 int y, //完笥屢斤彑中?賜徨完笥屢斤幻完笥?議 Y 恫炎
 int nWidth, //完悶錐業
 int nHeight, //完悶互業
 HWND hWndParent, //幻完笥鞘凹
 HMENU hMenu, //暇汽鞘凹
 HINSTANCE hInstance, //輝念殻會糞箭鞘凹
 LPVOID lpParam //匯倖峺?蝶方峙議峺寞
);
叱泣傍苧?
1) 斤噐歌方 lpClassName 才 lpWindowName?匯違聞喘錐忖憲?萩紗念弸L賜聞喘TEXT()

lpClassName 葎完笥窃議兆忖?辛參頁 RegisterClass 廣過議窃兆?匆辛參頁 Windows 圓協吶議陣周窃兆。

泌惚低幹秀議頁鏡羨完笥?夸 lpWindowName 哘勧秘完笥議炎籾?飛低錬李幹秀陣周?夸哘勧秘陣周議猟云。

2) dwStyle 燕幣完笥劔塀賜陣周劔塀。完笥劔塀參 WS 蝕遊?峋秤萩臥心ゞCreateWindow完笥欠鯉函峙〃。宸乂劔塀屡辛參喘噐鏡羨完笥?匆辛參喘噐陣周?徨完笥?。

茅阻完笥劔塀?音揖議陣周匆嗤徭失蒙嗤議劔塀。斤噐 static 陣周?万議劔塀參 SS 蝕遊?械喘議嗤?
劔塀 傍苧
SS_LEFT 猟云肖恣。
SS_RIGHT 猟云肖嘔。
SS_CENTER 猟云肖嶄。
SS_CENTERIMAGE 猟云換岷肖嶄。譜崔乎劔塀朔峪嬬?塋紹姉侘脹升viii簡荒? '\n' 匆音氏算佩。
SS_LEFTNOWORDWRAP 猟云肖恣?音徭強算佩?嗤 '\n' 嘉氏算佩??階竃陣周袈律議猟云繍瓜咨茄。
SS_SIMPLE 峪?塋紹姉侘脹升39? '\n' 匆音算佩??拝音徭強算佩?階竃陣周袈律議猟云繍瓜咨茄。

3) 斤噐歌方 hWndParent?泌惚頁鏡羨完笥?椎担葎 NULL?泌惚頁陣周?椎担祥俶勣幻完笥議鞘凹。

4) 歌方 hMenu 噴蛍嶷勣?壓朔偬初府議俶勣侃尖陣周嶧連議陣周嶄?宸頁麿断議率匯炎紛憲。耽倖陣周議 hMenu 歌方峙脅哘音揖?旺拝俶勣膿崙廬算欺 HMENU 窃侏?泌 (HMENU)1 ?壅肝膿距?耽倖陣周議(HMENU)朔議峙脅哘音揖?辛參貫1吏和弓容。

和中議旗鷹?氏壓 WM_CREATE 並周嶄幹秀 static 陣周?
//完笥狛殻
LRESULT CALLBACK WndProc(
 HWND hWnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam
){
 PAINTSTRUCT ps;
 HDC hdc;
 HWND hStatic;
 switch (message){
 case WM_CREATE:
 hStatic = CreateWindow(
 L"static", //床蓑猟云崇議窃兆
 L"C囂冱嶄猟利", //陣周議猟云
 WS_CHILD /*徨完笥*/ | WS_VISIBLE /*幹秀扮?塋?*/ | WS_BORDER /*揮円崇*/| SS_CENTER /*邦峠肖嶄*/ | SS_CENTERIMAGE /*換岷肖嶄*/,
 20 /*X恫炎*/, 20 /*Y恫炎*/, 200 /*錐業*/, 100 /*互業*/,
 hWnd, //幻完笥鞘凹
 (HMENU)1, //葎陣周峺協匯倖率匯炎紛憲
 hInst, //輝念殻會糞箭鞘凹
 NULL
 );
 break;
 case WM_PAINT:
 hdc = BeginPaint(hWnd, &ps);
 // TODO: 壓緩耶紗販吭紙夕旗鷹...
 EndPaint(hWnd, &ps);
 break;
 case WM_DESTROY:
 PostQuitMessage(0);
 break;
 }
 return DefWindowProc(hWnd, message, wParam, lParam) ;
}
塰佩丼惚?


頼屁旗鷹和墮?http://pan.baidu.com/s/1eQo8kNK 畜鷹?excr

公 CreateWindow 痕方勧秘議及眉倖歌方葎完笥劔塀賜陣周劔塀?徨完笥劔塀?。音揖議陣周劔塀匯違音揖?遇完笥劔塀夸寄揖弌呟?
  • WS_CHILD?燕苧頁匯倖徨完笥?匆祥頁陣周?音頁鏡羨完笥。
  • WS_VISIBLE?幹秀扮?塋升h膵藭屍亳恥秫州t鯰菻ź煇? ShowWindow 痕方栖?塋勝?
  • WS_BORDER?揮円崇。

公 CreateWindow 痕方勧秘議宜方及屈倖歌方葎 hInst?燕幣輝念殻會議糞箭鞘凹。hInst 壓 WndProc 痕方嶄旺音贋壓?咀葎輝念糞箭鞘凹頁宥狛 WinMain 痕方議歌方勧秘議?侭參駅倬勣協吶匯倖畠蕉延楚 hInst?隼朔壓 WinMain 嶄公万験峙朔嘉嬬聞喘。泌和侭幣?
#include <windows.h>
HINSTANCE hInst;
int WINAPI WinMain(
 HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 PSTR szCmdLine,
 int iCmdShow
){
 // TODO: 凪麿旗鷹
 hInst = hInstance;
 // TODO: 凪麿旗鷹
}
総翌?低匆辛參宥狛((LPCREATESTRUCT)lParam)->hInstance囂鞘資誼輝念殻會糞箭鞘凹?嗤佶箸議涛嗔萩徭佩Google賜為業。

資函、俐個陣周猟云

GetWindowText 痕方喘噐繍峺協完笥議炎籾猟云?泌惚贋壓?申唄欺匯倖産贋曝坪?泌惚峺協議完笥頁匯倖陣周?夸申唄陣周議猟云。万議圻侏葎?
Int GetWindowText(
 HWND hWnd, //完笥/陣周鞘凹
 LPTSTR lpString, //峺?俊辺猟云議産喝曝峺寞
 Int nMaxCount //勣隠贋壓産喝曝坪議忖憲議恷寄倖方
);
傍苧?
  • nMaxCount 峺協勣隠贋壓産喝曝坪議忖憲議恷寄倖方?凪嶄淫根NULL忖憲。泌惚猟云階狛順尫?万祥瓜舜僅。
  • 痕方峇佩撹孔?卦指申唄議忖憲議倖方。

旗鷹訟箭?
//協吶産喝曝
TCHAR szStaticBuf[100];
//資函 static 陣周議猟云
GetWindowText(hStatic, szStaticBuf, 100);

窃貌議?SetWindowText 痕方辛參喘栖譜崔完笥炎籾賜陣周猟云?万議圻侏葎?
BOOL SetWindowText(
 HWND hwnd,
 LPCTSTR lpString
);

和中議箭徨喘栖?塋省鷄蟲禹澶調諒釱?
//完笥狛殻
LRESULT CALLBACK WndProc(
 HWND hWnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam
){
 PAINTSTRUCT ps;
 HDC hdc;
 //駅倬瓜譜崔葎床蓑延楚
 static int iClick = 0; //報炎汽似肝方
 static TCHAR szTextBuf[20]; //static 陣周猟云?産喝曝?
 static HWND hStatic; //static 陣周鞘凹
 switch (message){
 case WM_CREATE:
 hStatic = CreateWindow(
 L"static", //床蓑猟云崇議窃兆
 L"C囂冱嶄猟利", //陣周議猟云
 WS_CHILD /*徨完笥*/ | WS_VISIBLE /*幹秀扮?塋?*/ | WS_BORDER /*揮円崇*/| SS_CENTER /*邦峠肖嶄*/ | SS_CENTERIMAGE /*換岷肖嶄*/,
 20 /*X恫炎*/, 20 /*Y恫炎*/, 200 /*錐業*/, 100 /*互業*/,
 hWnd, //幻完笥鞘凹
 (HMENU)1, //葎陣周峺協匯倖率匯炎紛憲
 hInst, //輝念殻會糞箭鞘凹
 NULL
 );
 break;
 case WM_PAINT:
 hdc = BeginPaint(hWnd, &ps);
 // TODO: 壓緩耶紗販吭紙夕旗鷹...
 EndPaint(hWnd, &ps);
 break;
 case WM_LBUTTONDOWN: //報炎恣囚汽似嶧連
 iClick++;
 wsprintf(szTextBuf, TEXT("報炎瓜汽似%d肝"), iClick);
 SetWindowText(hStatic, szTextBuf);
 break;
 case WM_DESTROY:
 PostQuitMessage(0);
 break;
 }
 return DefWindowProc(hWnd, message, wParam, lParam) ;
}
塰佩殻會朔?壓人薩曝汽似報炎臥心丼惚。和中頁匯嫖舜夕?


頼屁旗鷹和墮?http://pan.baidu.com/s/1bnudUVH 戻函畜鷹?5pea

叱泣傍苧?
1) WM_LBUTTONDOWN 葎報炎恣囚汽似嶧連。

2) wsprintf 嚥C囂冱嶄議 printf 窃貌?脅頁鯉塀晒補竃痕方?音狛 wsprintf 匯違繍忖憲堪補竃欺産喝曝?遇 printf 補竃欺陣崙岬。万議圻侏葎?
int wsprintf(
 LPTSTR lpBuffer, //俊辺忖憲堪議産喝曝議峺寞
 LPCTSTR lpFormat, //鯉塀陣崙忖憲堪
 [paramList] //歌方双燕
);

3) 蕗苧 static 延楚議朕議頁聞蕉何延楚隔消晒。及匯肝峇佩完笥痕方氏恢伏 WM_CREATE 嶧連?兜兵晒 hStatic 延楚。泌惚音蕗苧葎 static?椎担輝痕方峇佩潤崩朔 hStatic 延楚祥氏瓜?支?俊和栖汽似報炎峇佩完笥痕方扮?壅匆音氏恢伏 WM_CREATE 嶧連?匆祥吭龍彭 hStatic 延楚音氏瓜験峙?繍涙隈聞喘。

斤噐完笥痕方嶄議延楚?泌惚頁壓 WM_CREATE 嶧連嶄験峙?徽壓凪麿嶧連嶄聞喘?椎担匯違蕗苧葎床蓑延楚?宸劔和肝峇佩完笥痕方扮卆隼嗤丼。

厚謹購噐 static 延楚議坪否萩臥心?C囂冱static延楚才痕方

4) 厘断繍壓ゞ俐個static陣周嘘尚冲弼才猟忖冲弼〃匯准嶄讐盾 static 陣周嘘尚冲弼才猟忖冲弼議俐個。
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /