乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ON_CONTROL_RANGE

       啟蒙彩魂 2011-03-01
      ON_CONTROL_RANGE
      vc ON_CONTROL_RANGE 多個(gè)控件響應(yīng)一個(gè)方法2009-03-16 09:30分三個(gè)步驟
      1.在頭文件中聲明函數(shù)例如
      afx_msg void onNum(UINT uID)
      2.在.cpp文件中添加函數(shù)體
      void CCalculatorDlg::OnNum(UINT uID)
      {
      UINT index=uID-IDC_NUM_0;
      CString num;
      num.Format(_T("%d"),index);
      AfxMessageBox(num);
      }
      3.添加消息映射
      ON_CONTROL_RANGE(BN_CLICKED,IDC_NUM_0,IDC_NUM_9,OnNum)
      第一個(gè)參數(shù) 事件
      第二個(gè)參數(shù) 控件的第一個(gè)id
      第三個(gè)參數(shù) 空間的最后一個(gè)id
      第四個(gè)參數(shù) 響應(yīng)事件的方法

      注意 id號(hào)必須是連續(xù)的 如果是自己手動(dòng)修改的
      請(qǐng)先點(diǎn)擊 build -Clear   然后在重新編譯
       

        ON_CONTROL_RANGE 宏 收藏
      昨天我寫(xiě)一個(gè)程序,用到了多個(gè)check box,這多個(gè)check box響應(yīng)了同一個(gè)函數(shù),如果逐個(gè)添加消息映
      射的話,那么太麻煩了,于是想到用下面的方法:
       在.h文件中
      BOOL    m_fCheck[3]; // 代表3個(gè)check box選中的狀態(tài)
      afx_msg void OnCheck();
      在.cpp中
      在構(gòu)造函數(shù)中:
      for ( int i = 0; i < 3; i++ )
      m_fCheck[i] = FALSE;  // 初始化3個(gè)check box都為未選中狀態(tài)
      在DoDataExchange中
      void CTestDlg::DoDataExchange(CDataExchange* pDX)
      {
      CDialog::DoDataExchange(pDX);
      //{{AFX_DATA_MAP(CTestDlg)
      // NOTE: the ClassWizard will add DDX and DDV calls here
      //}}AFX_DATA_MAP
      // 添加數(shù)據(jù)映射,將每個(gè)check box和對(duì)應(yīng)的數(shù)組元素關(guān)聯(lián)起來(lái)
      for ( int i=0; i<3; i++ )
      DDX_Check(pDX, IDC_CHECK1 + i, m_fCheck[i]);
      }
      在消息映射中
      BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
      //{{AFX_MSG_MAP(CTestDlg)
      ON_WM_SYSCOMMAND()
      ON_WM_PAINT()
      ON_WM_QUERYDRAGICON()
      //}}AFX_MSG_MAP
      // 添加控件響應(yīng)的消息映射,由于這些控件的Id是連續(xù)的,于是我用了ON_CONTROL_RANGE
      ON_CONTROL_RANGE(BN_CLICKED, IDC_CHECK1, IDC_CHECK3, OnCheck)
      END_MESSAGE_MAP()
      在OnCheck()中
      void CTestDlg::OnCheck()
      {
      }
      但是問(wèn)題出來(lái)了,我無(wú)論點(diǎn)擊哪一個(gè)checkbox,在debug狀態(tài)下:
      隨便點(diǎn)擊任何一個(gè),都不會(huì)出現(xiàn)任何問(wèn)題
      但在release狀態(tài)下:
      Unhandled exception in test.exe:0xC0000005:Access Violation.
      然后在輸出窗口中:
      First-chance exception in test.exe: 0xC0000005: Access Violation.
      找了一個(gè)下午都沒(méi)有找出到底問(wèn)題出現(xiàn)在什么地方,后來(lái)去了csdn,事情終于有了眉目,對(duì)于
      ON_CONTROL_RANGE宏中的響應(yīng)函數(shù)OnCheck必須得有一個(gè)ID的參數(shù):
      afx_msg void OnCheck(UINT uID);
      而無(wú)論你是否使用這個(gè)ID。實(shí)際上,經(jīng)過(guò)我的測(cè)試,這個(gè)宏改為
      ON_COMMAND_RANGE(IDC_CHECK1, IDC_CHECK3, OnCheck)
      也可以,但是還是一樣OnCheck也必須帶有一個(gè)ID參數(shù)。
       
      本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多