SetWindowPos 逃跑按鈕

2021-05-23 21:50:42 字數 1017 閱讀 2761

孫鑫老師在講

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類派生的新類,然後將按鈕控制項與這種新型別的成員變數相關聯,從而就把按鈕控制項與乙個自定義的按鈕視窗關聯起來。新...

逃跑的老黃牛

從前,有乙個農夫,依靠一頭老黃牛耕種幾畝地來維持生活。這個農夫還養著乙隻可愛的小花貓。一天,老黃牛因為多吃了稻草而被主人打了一頓,正在傷心地哭泣,這時小花貓走過來。小花貓喵喵地叫了兩聲,笑著對老黃牛說 老牛啊,老牛,你可真是乙個可憐的老黃牛啊!我都被主人打了,你還笑啊!老黃牛嗚咽著說。主人為什麼要打...