本来想编写一个CFileEdit控件
效果为CEdit控件的右边有一个按钮(在CEdit控件的内部,也就是说按钮的父窗口为CEdit窗口)
可惜不会在CSDN上贴图,否则我可以弄几张效果图上来。
但编写时遇到了个问题,就是在CFileEdit中输入文字时,会导致按钮被文字覆盖。
我想应该是Client区域的问题。
于是我想到了截取WM_NCCALCSIZE消息。
但是没有效果。
我然后跟踪了程序,发现CFileEdit::OnNcCalcSize根本没有被执行(应该是窗口没有收到消息)。
我重试了一下,建立一个无文档模式的SDI
然后在CMainFrame中截取WM_NCCALCSIZE却是有用的。
不知道那位帅哥或美女给解释解释啊~~~
嘿嘿  在此先谢过了~~~~

解决方案 »

  1.   

    建议作成按牛在外面的,可以接受,BCG和XTREME好像就是那样做的
      

  2.   

    对了,嘿嘿  补充一下,我在主界面下加了个按钮
    执行以下代码
    SetWindowPos(NULL,0,0,0,0,SWP_FRAMECHANGED|SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER);
    CFileEdit::OnNcCalcSize就能接受到消息并执行了(Spy++真不错一个工具啊)
    大家帮忙想想解决方法吧,嘿嘿
    对了,按下那个按钮后~~~~我的选择文件按钮竟然也没了。
    (5555``````真没预料到~~~~~~~nc区域这么狠~~~)
    这个问题也一并提出来吧~~~~
      

  3.   

    你的按钮如果在编辑框里面,那么调小了编辑框当然也就不能看到按钮了,窗体的非客户区不能创建子窗体。还是把编辑框和按钮分开,外面再加一层控件窗口,类似ComboBox那样,适当设置编辑框的样式可以把边框去掉,看起来效果是一样的。