我动态生成一个按钮
m_testBtn.Create(_T("Test"),WS_CHILD|WS_VISIBLE|CBRS_FLYBY,CRect(0,0,50,50),this,0);
资源ID指定为0时,按钮正常显示。但是ID指定其它值(不管是Resource.h里面又或者没有的值)时,按钮的Enable为false了。不可用了,我检查了所有代码,没有发现那里被更改了啊。求大侠解答啊加我QQ送你10元话费。QQ:623041460

解决方案 »

  1.   

    static CButton button;
    button.Create(_T("Test"), WS_CHILD | WS_VISIBLE, CRect(0, 0, 50, 50), this, 0x11);
    -------------
    应该不会吧, CBRS_FLYBY这个属性不对,CButton没有这个属性,这个是CControlBar的,不是CButton的
      

  2.   

    CBRS_FLYBY   Causes message text to be updated at the same time as tool tips.
    这个是 CControlBar 属性。。主要属性问题!!
      

  3.   

    我只在CDockablePane里面创建的,
    static CButton button;
    button.Create(_T("Test"), WS_CHILD | WS_VISIBLE, CRect(0, 0, 50, 50), this, 0x11);
    这样也不行
    在Dialog里面这样创建是可以的。但是在CDockablePane里面创建却不行,资源ID为0时,按钮是可用的(IsWindowEnable()为TRUE),但是ID为其他值时,按钮却不可用了。
    不知道是不是CDockablePane的问题??请大家帮忙啊,谢谢啊
      

  4.   

    是编译不能通过,还是按钮能显示,但却不能响应。 
    IsWindowEnable()为TRUE并不一定意味着按钮可用。
      

  5.   

    问题找到了,好像是:
    It looks like you haven't created a command UI handler for it yet... 
    意思是:好像你还没用为按钮创建一个UI命令句柄请问大侠,为什么要创建这么个句柄呢?如果我批量生产大量按钮,可不可以使用某一范围的UI句柄呢?
    BEGIN_MESSAGE_MAP(CMyDialogBar, CDialogBar) ON_MESSAGE(WM_INITDIALOG, OnInitDialog) ON_BN_CLICKED(IDC_BUTTON, OnClickButton) ON_UPDATE_COMMAND_UI(IDC_BUTTON, OnUpdateClickMyButton) END_MESSAGE_MAP() void CMyDialogBar::OnUpdateClickMyButton(CCmdUI* pCmdUI) { pCmdUI->Enable(); } 参考网站:http://www.myext.cn/cpp/10898.html
    请高手继续解释下啊谢谢。