是这样的.我用了LibUIDK的库(免费版)来创建了我的主窗口(我的程序只要一个窗口),是基于单文档的.
而我需要在这个窗口的一个区域里放置一些控件,贴一些图,接受一些输入等等...由于主窗口(CMainFrame)是基于LibUIDK的CUIWnd类的,我觉得它把消息处理搞得很乱,所以我想,在主窗口的我想控制的那个区域放上一个基于FrameWnd的窗口,我就可以分割它,贴图什么的,就是那种轻车熟路的方式了.
于是乎,我在主框架类的OnCreat函数中这样写:
         CClientWin *pWndClient = new CClientWin;
pWndClient->LoadFrame(IDR_MAINFRAME,
WS_CHILD|WS_OVERLAPPED|WS_VISIBLE, this,NULL);
pWndClient->ShowWindow(SW_SHOW);
pWndClient->UpdateWindow();那个CClientWin就是基于FrameWnd的一个类.我上面的代码完全是按照MFC抄的.
我的本意是把这个窗口贴上去后,再在OnSize里把它调整到我需要的位置.不要标题菜单什么的,就要客户区.问题是:我试了很多LoadFrame 函数中窗口的属性,总是达不到效果,有的时候,它是独立的一个窗口跳出来,有的时候又什么都没有.
请问我这个思路行吗?具体要怎么操作???
我想要的效果就是这样,就好像是又贴了一个客户区在主窗口上.不知道我说明白了没有,呵呵...
这应该是一个基础的界面问题吧?

解决方案 »

  1.   

    CClientWnd创建时指定 WS_CHILD 属性了吗
      

  2.   

    如果单单指定WS_CHILD,就什么也显示不出来...我觉得应该是几个组合吧.MSDN说的也不清楚,我一个个试,这些排列组合也够我受的...
      

  3.   

    WS_CHILD|WS_VISIBLE 有着两个就够了
      

  4.   

    我用的这两个.跟本就显示不出来.
    跟没有这个ClientWnd是一样的.到底是怎么回事呢?一个晚上了,还没搞定...
      

  5.   

    Please note the dwStyle, hWndParent, and hMenu parameters to CreateWindowEx(). As follow:
    CreateWindowEx(NULL,
    TEXT("Child Wnd Class"),
    NULL,
    WS_VISIBLE | WS_CHILD, // dwStyle
    0, 0,
    64, 64,
    hwnd, // hWndParent
    (HMENU)1, // hMenu. For a child window, hMenu specifies the child-window ID
    NULL,
    NULL);
      

  6.   

    首先,LIBUIDK仅仅是一个应用程序框架,和基于对话框\单文档\多文档并列的一种程序类型,所使用的类也和它们一样是MFC类.只不过LibUIDK对于控件类的绘图部分进行了处理,使其可以处理位图显示.而且也都是在处理之后返回给系统,并不回吃掉消息,所以基本上不存在搞乱消息处理的问题.LibUIDK是有自己的应用程序创建向导,旧的版本没有,是在基本单文档程序的工程上修改,对于初级用户有些困难.LibUIDK本身不基于单文档,也和文档/视结构没有任何关系.使用CUIWnd作为主窗口后,整个窗口都是客户区,也就是整个区域你都可以控制.CFrameWnd是单文档程序主窗口的基类,不适宜用作子窗口,所以不要做这种尝试了.如果想作子窗口,可以把它当成普通窗口来创建:
    m_wnd.Create(NULL, NULL, WS_CHILD|WS_VISIBLE, CRect(0,0,100,100), this, NULL);
    m_wnd;是CFrameWnd类型的成员变量.实际上你可以再制作一个CUIWnd窗口作为主窗口的子窗口,由于CUIWnd是可以由皮肤编辑器制作的,可任意贴图,控制起来比你用CFrameWnd贴图更容易.所以推荐你使用这种方法.LibUIDK安装文件夹下的Demo程序也都包含子窗口的.全部是贴图,你可以参考一下.
      

  7.   

    以后这种问题到VC/MFC界面区提问,可以得到最快的解答.
      

  8.   

    LibUIDK新版下载地址:
    http://www.iuishop.com/download/LibUIDK%203.0.B00788FR.exe
    更新日期:August 03, 2006