如何在程序运行过程中设置对话框的尺寸大小,左上角的图标,标题栏的颜色,标题以及关闭,最大化按钮,最小化按钮
显示和隐藏等相关设置,请各位指教!

解决方案 »

  1.   

    在对话框BOOL CPorpDlg::PreCreateWindow(CREATESTRUCT& cs) 
    {
    // TODO: Add your specialized code here and/or call the base class
    cs.cx=300;
    cs.cy=200;
    cs.lpszName="zhoujianzhao";
    return TRUE;
    //return CDialog::PreCreateWindow(cs);
    }
    为什么不能改变对话框的大小?
      

  2.   

    如何初始化设置对话框Dialog的大小?没有人会吗?
      

  3.   

    重载CDialog::PreCreateWindow是无效的
    一般的窗口的创建是使用Create函数,这个函数在创建窗口之前调用了PreCreateWindow函数,并且允许在创建创建之前在PreCreateWindow注册一个拥有自定义窗口样式的新的窗口类,来创建一个拥有自定义类名新的窗口。而模式对话框是通过CreateDialogIndirect来创建的,在这当中并没有调用PreCreateWindow函数,重载的PreCreateWindow函数根本就不被执行,因此在这个函数里修改对话框的窗口类是没有用的。
      

  4.   

    CDialog是通过CDialog::DoModal()函数创建窗口的你可以重载CDialog,修改DoModal。或者不重载,在InitDialog中MoveWindow来修改自己的大小和位置
      

  5.   

    在OnInitDialog中改变标题栏:
    SetWindowsText(_T("your dlg name"));在构造函数中修改左上标的图标
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    红色的ID改成其它的ICON就行了;和OnPaint中修改标题颜色,
    不过CDC要通过CWindowDC来创建,不要用CPaintDC和CClientDC来创建,
    在重绘时注意标题栏的坐标计算正确就OK对话框的大小:
    MoveWindow和SetWindowPos都可以对话框的最大化和最小化按钮在编辑模板的时候就可以指定,运行时无法更改,除非是自绘的
      

  6.   

    SetWindowPos(NULL,100,100,100,100,SWP_WHIDOWSHOW);
      

  7.   

    CDialog是通过CDialog::DoModal()函数创建窗口的 你可以重载CDialog,修改DoModal。 或者不重载,在InitDialog中MoveWindow来修改自己的大小和位置
      

  8.   

    Quote=引用 12 楼 z_jzhao 的回复:]
    引用 9 楼 supconsupcon 的回复:
    在OnInitDialog中改变标题栏:
    SetWindowsText(_T("your dlg name"));//提示没有此命令,可以给个例子吗?
    和OnPaint中修改标题颜色,
    不过CDC要通过CWindowDC来创建,不要用CPaintDC和CClientDC来创建,//如何创建,可以给个例子吗?
    在重绘时注意标题栏的坐标计算正确就OK对话框的大小:
    MoveWindow和SetWindowPos都可以用此命令可以改变控件的大小和位置,如下代码
    GetDlgItem(IDC_STATIC1)->MoveWindow(250,100,200,50,1)//可以改变控件的大小,怎么改变对话框的大小;我的对话框ID为P:ID_DIALOG;SetWindowPos又如何用?请指教,多谢!
    [/Quote]
    SetWindowsText(_T("your dlg name"));//不好意思,应该是SetWindowText,笔误MoveWindow:若窗口指针为pWnd,则pWnd->MoveWindow(0, 0, 300, 300);// 和调整IDC_STATIC1的方法一样,你自己都会用了啊CWindowDC的用法参考CDialog程序中OnPaint()里的代码