實際應用中,通常乙個程式都有乙個底部狀態列來顯示一些資訊,比如繪圖軟體,通常是在狀態列上顯示滑鼠位置。
我們使用createwindow來建立乙個狀態列視窗,儘管其內部也是呼叫createwindowex,但具體沒有什麼差別。
hwndstatus=createwindow(
lpctstr lpclassname,
lpctstr lpwindowname,
dword dwstyle,
int x,int y,
int nwidth,int nheight,
hwnd hwndparent,
hmenu hmenu,
handle hinstance,
pvoid lpparam
)
lpctstr lpclassname 是一直字串指標,指定建立的視窗類名,狀態列的視窗類名是statusclassname,
lpctstr lpwindowname,也是字串指標,指定視窗名稱,建立狀態列的話,這個可以為空。
dword dwstyle 執行視窗風格,作為子視窗控制項,ws_child | ws_visible 一定要有,多種風格用|符號鏈結。
int x,int y,int nwidth,int nheight。指定視窗建立的座標位置,狀態列可以使用0,0,0,0。只要樣式中不包含ccs_noparentalign或ccs_noresize風格,狀態列就會自動調整大小。
hwnd hwndparent,,指定乙個父視窗控制代碼。
hmenu hmenu,選單控制代碼,狀態列等子視窗也設定為null,
handle hinstance, 模組例項控制代碼,winmain函式傳遞過來的控制代碼。
pvoid lpparam createstruct結構,傳遞給wm_create 訊息的lparam引數,狀態列也可以設定為null。
//建立乙個狀態列
hwndstatus=createwindow(statusclassname,"",sbs_sizegrip|ws_child | ws_visible,
0,0,0,0,hwnd,null,hinst,null);
//移動初始化狀態列
movestatus(hwnd);
//設定狀態列分欄文字,wparam指定欄目
sendmessage(hwndstatus, sb_settext, (wparam)0, (lparam)text("就緒"));
//使用格式化字串來設定狀態列文字
wsprintf(status_line,staformat,1,1);
wsprintf(status_size,sizeformat,0);
sendmessage(hwndstatus, sb_settext, (wparam)1, (lparam)status_line);
sendmessage(hwndstatus, sb_settext, (wparam)2, (lparam)status_size);
執行狀態列分割幾部分。
void movestatus(hwnd hwnd)
sendmessage(hwndstatus, sb_setparts, 3, (lparam)(lpint)width);
sb_setparts訊息用於來設定狀態列,第乙個引數是狀態列控制代碼,第三個引數是用於講狀態列分割幾部分,這個3是分3欄顯示。
(lparam)(lpint)width ,width是乙個int陣列,裡面元素儲存了每個狀態列欄目的寬度。
等量把狀態列分三欄的話,第二欄為第一欄的2倍,同樣,第三欄寬度為第一欄3倍。這個是狀態列寬度表示的方法。
sendmessage(hwndstatus, sb_settext, (wparam)0, (lparam)text("就緒"));
sb_settext訊息用於設定指定欄目的文字。wparam為欄目標號,從0開始。lparam表示字串指標。
Win32 SDK學習筆記3
1 思考一下,視窗程式中為什麼要註冊視窗類?你想建立什麼樣的視窗呢?那麼,建立什麼樣的視窗呢?建立前,window系統可不知道你要的是什麼型別的視窗啊 比如標題欄上顯示什麼圖示,滑鼠形狀是什麼,視窗背景顏色等等 這些型別資訊應在你建立前事先告訴window系統。可以採用這種方法 就是我們事先寫乙份要...
Win32 SDK 實現UDP聊天室程式 一)
win32程式設計也學習了乙個快乙個月。前段時間自己寫了個基於udp的簡單聊天室程式。在這裡做乙個總結。首先網路程式設計一般都是基於tcp或udp的。一般聊天室的程式都是基於udp的面向連線的。一般的過程都是於下 tcp程式設計的伺服器端一般步驟是 1 建立乙個socket,用函式socket 2 ...
win32 SDK模態對話方塊一例(使用資源)
呵呵,其實基本的寫寫和mfc區別不大,當然,速度上會比mfc有點優勢。當然,用來做開發的話,更多的細節上需要敲的 會比較多。include include resource.h include bool oninitdialog bool oncommand hwnd hwnd,wparam wpa...