Windows 编程[5] - 学习窗体生成的过程五
生活随笔
收集整理的這篇文章主要介紹了
Windows 编程[5] - 学习窗体生成的过程五
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
根據(jù)前面的介紹, 可以完成一個窗口的建立了:
program Project1;usesWindows, Messages;{窗口回調(diào)函數(shù), 必須聲明在使用它的程序前面} function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall; beginResult := 0;if msg = WM_DESTROY then {當窗口銷毀時}PostQuitMessage(0) {告訴 GetMessage: 退出吧!}elseResult := DefWindowProc(wnd, msg, wParam, lParam); {其他消息做默認處理} end;{主程序} varhWnd : THandle;Msg : TMsg;MyWndClass: TWndClass; begin{指定窗口類型}MyWndClass.style := CS_HREDRAW or CS_VREDRAW; {改變大小時重繪}MyWndClass.lpfnWndProc := @WndProc; {回調(diào)函數(shù)指針}MyWndClass.cbClsExtra := 0; {沒有額外的窗口類信息}MyWndClass.cbWndExtra := 0; {沒有額外的窗口信息}MyWndClass.hInstance := HInstance; {程序?qū)嵗浔鷠MyWndClass.hIcon := 0; {沒指定圖標}MyWndClass.hCursor := LoadCursor(0, IDC_ARROW); {選用了系統(tǒng)提供的指針}MyWndClass.hbrBackground := HBRUSH(COLOR_WINDOW + 1); {背景色使用 Windows 默認的窗口顏色}MyWndClass.lpszMenuName := nil; {不指定默認菜單}MyWndClass.lpszClassName := 'MyWindowClass'; {給窗口類型命名}{注冊窗口類型}RegisterClass(MyWndClass);{建立窗口并返回句柄}hWnd := CreateWindow('MyWindowClass', {窗口類型名}'新窗口', {標題}WS_OVERLAPPEDWINDOW, {窗口的常規(guī)樣式}Integer(CW_USEDEFAULT), {默認水平位置}Integer(CW_USEDEFAULT), {默認垂直位置}Integer(CW_USEDEFAULT), {默認寬度}Integer(CW_USEDEFAULT), {默認高度}0, {無父窗口}0, {無主菜單}HInstance, {實例句柄}nil {無附加信息});{顯示窗口}ShowWindow(hWnd, SW_SHOWNORMAL);//UpdateWindow(hWnd); {這個更新窗口要不要好像都可以}{消息循環(huán)}while(GetMessage(Msg, 0, 0, 0)) dobeginTranslateMessage(Msg); {對部分鍵盤消息的再處理}DispatchMessage(Msg); {將消息發(fā)送給回調(diào)函數(shù)}end;end. 接下來再繼續(xù)完善這些代碼!
program Project1;usesWindows, Messages;{窗口回調(diào)函數(shù), 必須聲明在使用它的程序前面} function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall; beginResult := 0;if msg = WM_DESTROY then {當窗口銷毀時}PostQuitMessage(0) {告訴 GetMessage: 退出吧!}elseResult := DefWindowProc(wnd, msg, wParam, lParam); {其他消息做默認處理} end;{主程序} varhWnd : THandle;Msg : TMsg;MyWndClass: TWndClass; begin{指定窗口類型}MyWndClass.style := CS_HREDRAW or CS_VREDRAW; {改變大小時重繪}MyWndClass.lpfnWndProc := @WndProc; {回調(diào)函數(shù)指針}MyWndClass.cbClsExtra := 0; {沒有額外的窗口類信息}MyWndClass.cbWndExtra := 0; {沒有額外的窗口信息}MyWndClass.hInstance := HInstance; {程序?qū)嵗浔鷠MyWndClass.hIcon := 0; {沒指定圖標}MyWndClass.hCursor := LoadCursor(0, IDC_ARROW); {選用了系統(tǒng)提供的指針}MyWndClass.hbrBackground := HBRUSH(COLOR_WINDOW + 1); {背景色使用 Windows 默認的窗口顏色}MyWndClass.lpszMenuName := nil; {不指定默認菜單}MyWndClass.lpszClassName := 'MyWindowClass'; {給窗口類型命名}{注冊窗口類型}RegisterClass(MyWndClass);{建立窗口并返回句柄}hWnd := CreateWindow('MyWindowClass', {窗口類型名}'新窗口', {標題}WS_OVERLAPPEDWINDOW, {窗口的常規(guī)樣式}Integer(CW_USEDEFAULT), {默認水平位置}Integer(CW_USEDEFAULT), {默認垂直位置}Integer(CW_USEDEFAULT), {默認寬度}Integer(CW_USEDEFAULT), {默認高度}0, {無父窗口}0, {無主菜單}HInstance, {實例句柄}nil {無附加信息});{顯示窗口}ShowWindow(hWnd, SW_SHOWNORMAL);//UpdateWindow(hWnd); {這個更新窗口要不要好像都可以}{消息循環(huán)}while(GetMessage(Msg, 0, 0, 0)) dobeginTranslateMessage(Msg); {對部分鍵盤消息的再處理}DispatchMessage(Msg); {將消息發(fā)送給回調(diào)函數(shù)}end;end. 接下來再繼續(xù)完善這些代碼!
總結(jié)
以上是生活随笔為你收集整理的Windows 编程[5] - 学习窗体生成的过程五的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVCHOST.exe进程之谜
- 下一篇: 用Python发送邮件[zt]