windows可视化编程中如何在对话框和公用控件中插入spin控件

在MFC中集成RAD.NET框架(3) - VC.NET教程 - 编程入门网
在MFC中集成RAD.NET框架(3)
NET控件的消息处理
一般而言,控件的对话框消息处理是一个极为关键的问题,在网上能找到的MFC中宿主控件的解决方法中,均没有实现.NET控件的对话框消息处理,一个明显的特征是不能处理&Tab&键消息。为此,我们重载了CUserCtrlView的PreTranslateMessage函数:
BOOL CUserCtrlView::PreTranslateMessage(MSG *pMsg)
  BOOL bRet = FALSE;
  if(m_Control.pUnkControl != NULL)
    CComQIPtr&IOleInPlaceActiveObject&
      spInPlace(m_Control.pUnkControl);
    if(spInPlace)
      bRet =(S_OK == spInPlace-&
        TranslateAccelerator(pMsg)) ?
          TRUE : FALSE;
  if(CView::PreTranslateMessage(pMsg))
    return TRUE;
  CFrameWnd *pFrameWnd = GetTopLevelFrame();
  if(pFrameWnd != NULL
  && pFrameWnd-&m_bHelpMode)
    return FALSE;
  // start with first parent frame
  pFrameWnd = GetParentFrame();
  while(pFrameWnd != NULL)
    if(pFrameWnd-&PreTranslateMessage(pMsg))
      return TRUE;
    pFrameWnd = pFrameWnd-&GetParentFrame();
  return bR
这样可以使得CUserCtrlView可以正确的处理.NET Control的对话框消息。
回归RAD世界
接下来我们看看如何在工程中插入一个.NET用户自定义控件。我们增加一个新的托管类testControl,代码如下:
#pragma once
namespace test
  public __gc class testControl :
    public System::Windows::Forms::UserControl
  public:
    testControl(void)
      InitializeComponent();
  protected:
    void Dispose(Boolean disposing)
      if(disposing && components)
        components-&Dispose();
      __super::Dispose(disposing);
  private:
    System::Windows::Forms::Label *label1;
    System::ComponentModel::Container
      *
    void InitializeComponent(void)
      this-&label1 = new
        System::Windows::Forms::Label();
      this-&SuspendLayout();
      this-&label1-&Location =
        System::Drawing::Point(16, 24);
      this-&label1-&Name = S&label1&;
      this-&label1-&Size =
        System::Drawing::Size(208, 16);
      this-&label1-&TabIndex = 0;
      this-&label1-&Text =
        S&Welcome to TZ MFC.NET!&;
      this-&Controls-&Add(this-&label1);
      this-&Name = S&testControl&;
      this-&Size =
        System::Drawing::Size(240, 160);
      this-&ResumeLayout(false);
注意,testControl类继承自UserControl类,用户控件是开发者创建的任何控件,您可以将多个.NET控件组织在一起,添加功能代码,然后把它作为一个更综合一些的控件来使用,使用每一个用户控件和使用其他的.NET标准控件的步骤都是没有区别的。在上面的代码中,我们自定义的用户控件仅包含了一个.NET Label控件。
到目前为止,我们已经可以在原生MFC项目中成功插入.NET控件。然而,因为上面的.NET控件的插入是纯手工方式的,不直观且很难驾驭,一个聪明的办法是实现一个集成在Visual Studio .NET IDE中的Wizard,以使得MFC工程中可以直接使用可视设计器,在随机光盘中,我们提供了相关的Wizard,安装后您就可以直接在MFC项目中插入并可视化设计.NET用户控件了。
通过集成的Wizard,传统的MFC可以与现代的.NET RAD机制完美的结合在一起,使得你既可以得到传统C++的优雅,又可以享有现代RAD机制的风韵,对资源的整合力度也极大地扩展了。如何在MFC对话框中插入一张图片(电脑上已有的),用picture控件。_百度知道
如何在MFC对话框中插入一张图片(电脑上已有的),用picture控件。
新手啦,讲详细点咯~~
提问者采纳
选哪个bitbmp.0只能添加bmp格式的,然后再picture控件单击右键属性你要添加的图片是什么格式的。。然后找到你添加的那个就好了吧。你先把图片添加到资源中?vc6
弱弱的问一句怎么添加到资源...
在资源视图下单击右键,insert-&bitmap-&import,弹出对话框,下面的文件类型选所有文件,就能看到你要的图片了
提问者评价
太感谢了,真心有用
其他类似问题
为您推荐:
mfc的相关知识
其他2条回答
动态插入还是对话框显示的时候已经存在???
推荐你看孙鑫的那MFC书
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
南开15秋学期《windows可视化编程》在线作业
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 对话框和公用控件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信