孫鑫老師在講
vc的過程中,曾實現「逃跑按鈕的效果」,主要思想是,在基於對話方塊的工程中,可以通過新建乙個類
cnewbtn1
(名字可以任意命名),讓該類繼承
cbutton
類,然後在對話方塊類中針對目標按鈕新建乙個成員變數(
m_btn1
),通過選擇成員變數的型別為新建的繼承於
cbutton
類cnewbtn1
,這樣,對話方塊中的按鈕就和類
cnewbtn1
就關聯起來,這樣對話方塊上的按鈕就可以接受
windows
的訊息了。孫鑫老師在講座中說可以同
setwindowpos
來實現,但是沒有給出具體**,下面就是我的實現思想和步驟。
這裡還是按照孫鑫老師講座裡面那樣,增加乙個
wm_mousemove
訊息控制代碼函式。
在cnewbtn1
中新建兩個成員變數
m_btn_x
,m_btn_y
,分別用來記錄對話方塊按鈕的原始座標,再建立乙個
bool
型別的成員變數
m_bismoved
,再建構函式中初始化為
true
,它用來控制是否按鈕的移動。在對話方塊的初始函式
oninitdialog()
中新增如下**:
在
wm_mousemove
訊息控制代碼函式
onmousemove(uint nflags, cpoint point)
中新增如下**:
執行即可。
2010-12-19
SetWindowPos 函式詳解
setwindowpos 函式功能 該函式改變乙個子視窗,彈出式視窗式頂層視窗的尺寸,位置和z序。子視窗,彈出式視窗,及頂層視窗根據它們在螢幕上出現的順序排序 頂層視窗設定的級別最高,並且被設定為z序的第乙個視窗。函式原型 bool setwindowpos hwn hwnd,hwnd hwndln...
逃跑按鈕的實現
首先要捕獲滑鼠移動訊息,那有哪個類來捕獲訊息呢?如果是對話方塊來捕獲的話,我們只要在對話方塊上移動,就會上下移動,不符合,所以滑鼠移動訊息應該有按鈕視窗來捕獲,可以建立乙個從cbutton類派生的新類,然後將按鈕控制項與這種新型別的成員變數相關聯,從而就把按鈕控制項與乙個自定義的按鈕視窗關聯起來。新...
逃跑的老黃牛
從前,有乙個農夫,依靠一頭老黃牛耕種幾畝地來維持生活。這個農夫還養著乙隻可愛的小花貓。一天,老黃牛因為多吃了稻草而被主人打了一頓,正在傷心地哭泣,這時小花貓走過來。小花貓喵喵地叫了兩聲,笑著對老黃牛說 老牛啊,老牛,你可真是乙個可憐的老黃牛啊!我都被主人打了,你還笑啊!老黃牛嗚咽著說。主人為什麼要打...