兩個edit control,比如半徑r,周長l,需要保證r改變,l隨之更改;l改變,r隨之更改。
查了下,發現edit有乙個en_change訊息,每當乙個edit有更改,會傳送乙個en_change訊息。因此在兩個edit上均新增這樣乙個訊息處理函式,去更改另乙個edit即可。
**如下:
1//r的訊息處理函式
2onenchangeeditr()320
//l的訊息處理函式
21onenchangeeditl()
22
跑了兩次都掛了。debug了下發現是setdlgitemtext會傳送on_enchange訊息,兩個處理函式反覆互相呼叫導致陷入死迴圈。
要想破解死迴圈,需要在處理函式中辨識是否從另乙個處理函式而來,如果是的話就直接返回。因此加兩個布林變數的標記,fromr和froml,初始值為false。**如下:
1onenchangeeditr()217
1819
//todo: 在此新增控制項通知處理程式**
20cstring rs,ls;
21double
r,l;
22getdlgitemtext(idc_edit_r,rs);
23 r=atof(rs);
24 l=2*3.14159*r;
25 ls.format("
%.2f
",l);
26 fromr=true;27
setdlgitemtext(idc_edit_l,ls);28}
2930
onenchangeeditl()
3146
4748
//todo: 在此新增控制項通知處理程式**
49cstring rs,ls;
50double
r,l;
51getdlgitemtext(idc_edit_r,rs);
52 r=atof(rs);
53 l=2*3.14159*r;
54 ls.format("
%.2f
",l);
55 froml=true;56
setdlgitemtext(idc_edit_r,rs);
57 }
C 同時保持兩個窗體啟用
c 中,如何同時保持兩個窗體啟用?基本的思想是當乙個窗體啟用時設定另乙個窗體啟用。這樣相互啟用。然而我們只是用單純的c 是無法實現的,我們需要用到winapi。我們現在有form1和form3兩個窗體,form1作為起始窗體。public partial class form1 form void ...
保持兩個Git分支不同的檔案
時間 2019 01 27 標籤 git 欄目 git 原文 我確定我的 git repo的兩個分支應該只在乙個檔案中有所不同.確保這一點的最簡單方法是在branch1中完成所有工作,並在每次切換到它時將其合併到branch2中 包裝到shell指令碼中,因此每個交換機只需要乙個命令 但是,有沒有辦...
MFC中鍵盤響應的兩個問題
1 mfc中上下左右鍵的響應 在普通的mfc視窗中可以用onkeydown 函式或者onchar 函式來響應鍵盤訊息。普通字元的響應很簡單,但是鍵盤上下左右鍵的響應卻沒辦法直接通過字元來實現,嘗試了採用asic碼代替字元也沒有成功,以下是一種正確的使用方法 switch nchar case i c...