继承CWindow自绘 要比 继承CButton 简单许多。

解决方案 »

  1.   

    checkbox 在 WTL 就是 CButton 我是  : public  CButton 在 Create 的时候Create(hwndParent,btnRect,captionStr,(WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX|WS_TABSTOP),0,btnID);分别是 Chechbox 属性和 按钮ID 。我是动态自生成的,如果你是资源管理器的,和Button一样子类化或者绑定,具体参照 http://data.tohnichi-sh.com/wtl/partiv_vc6.html
      

  2.   

    你这个是勾选框还是按钮按下不会弹起的那种。你这个是动态生成的怎么会需要按钮ID呢,我也是需要自动生成的,最好连ID都不要用到,因为按钮个数未知
      

  3.   


    是沟选项,按钮ID必须的啊,否则怎么拿数据?按钮个数未知,你可以分配一个按钮号段就行了。
    一般创建什么窗口好像不用带ID进去吧,设置下风格,然后会返回窗口句柄的,窗口句柄不就可以区分了,很纳闷
      

  4.   


    是沟选项,按钮ID必须的啊,否则怎么拿数据?按钮个数未知,你可以分配一个按钮号段就行了。
    一般创建什么窗口好像不用带ID进去吧,设置下风格,然后会返回窗口句柄的,窗口句柄不就可以区分了,很纳闷把你这个类贴出来,我拿去用下试试,看看好不好用
      

  5.   


    你用WTL向导建立一个DialogBox的程序,一定有一个 CMainDlgclass CMainDlg : public CDialogImpl<CMainDlg>, public CUpdateUI<CMainDlg>,
    public CMessageFilter, public CIdleHandler
    {
    public:
    enum { IDD = IDD_MAINDLG };// ..... //testCheckBoxT mChkbox1;
    CButton mChkbox1;
    };LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
    {
    // center the dialog on the screen
    CenterWindow();
    /*
    省略,你自己调整rc位置
    */ RECT rc ;
    rc.left=49;
    rc.top=40;
    rc.right=140;
    rc.bottom=140;
    mChkbox1.Create(m_hWnd, rc, _T("chkbox"),WS_CHILD | WS_VISIBLE|BS_AUTOCHECKBOX); return TRUE;
    }
      

  6.   


    你用WTL向导建立一个DialogBox的程序,一定有一个 CMainDlgclass CMainDlg : public CDialogImpl<CMainDlg>, public CUpdateUI<CMainDlg>,
    public CMessageFilter, public CIdleHandler
    {
    public:
    enum { IDD = IDD_MAINDLG };// ..... //testCheckBoxT mChkbox1;
    CButton mChkbox1;
    };LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
    {
    // center the dialog on the screen
    CenterWindow();
    /*
    省略,你自己调整rc位置
    */ RECT rc ;
    rc.left=49;
    rc.top=40;
    rc.right=140;
    rc.bottom=140;
    mChkbox1.Create(m_hWnd, rc, _T("chkbox"),WS_CHILD | WS_VISIBLE|BS_AUTOCHECKBOX); return TRUE;
    }

    mChkbox1.Create(m_hWnd, rc, _T("chkbox"),WS_CHILD | WS_VISIBLE|BS_AUTOCHECKBOX);
    这个不是就没有ID嘛和我原来想的不是一样的吗