mfc如何设置窗口大小
对话框里面的那些控件和字是不会改变的,并且相对对话框的左上位置(即窗口的0.0坐标)也不会变。还有,一般没有程序员设计改变控件的大小,只会改变控件的位置必须自己处理思路如下:窗口初始化的时候记录每个控件的位置坐标,还有对话框的大小然后计算控件的位置坐标和对话框大小的比值处理对话框的WM_SIZE按比值调整控件的位置可用控件变量的成员函数MoveWindow来实现位置及大小的改变。
mfc窗口自适应大小
建立工程的时候这里改一下,改成CScrollView 然后View里面的OnInitialUpdate函数改一下,设定实际尺寸 OnDraw里只管画图就可以了
mfc控件随窗口大小变化
窗口中的某些控件在标准下设置其属性为隐藏,在按下科学后设置为可见,MFC控件都有这个属性的,之后在调整一下整个窗体的SIZE
mfc 窗口最大化
窗口初始化状态设置
以下只示例了窗口最大化,其他窗口状态只替换相应参数即可,
窗口最大化/最小化/显示/隐藏等三种方法都可以实现,
第三种方法修改结构体内的参数可以指定窗口最大化最小化还原后显示的位置
MFC窗口最大化
方法1:
1.创建窗口,窗口类型中需要WS_MAXIMIZE
pC_Dlg = new CC_Dlg(); //给指针分配内存
pC_Dlg->Create(IDD_DIALOGC); //创建一个非模态对话框
2.在创建完窗口后调用ShowWindow,参数设置为:SW_SHOWMAXIMIZED
pC_Dlg->ShowWindow(SW_SHOWMAXIMIZED);//最大化显示
pC_Dlg->UpdateWindow();
方法2:
1.创建窗口,窗口类型中需要WS_MAXIMIZE
pC_Dlg = new CC_Dlg(); //给指针分配内存
pC_Dlg->Create(IDD_DIALOGC); //创建一个非模态对话框
2.在OnInitDialog()中调用 ShowWindow(SW_SHOWMAXIMIZED);
BOOL CC_Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();// TODO: 在此添加额外的初始化
ShowWindow(SW_SHOWMAXIMIZED);
UpdateWindow();
return TRUE; // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE
}
方法3:
1.创建窗口,窗口类型中需要WS_MAXIMIZE
pC_Dlg = new CC_Dlg(); //给指针分配内存
pC_Dlg->Create(IDD_DIALOGC); //创建一个非模态对话框
2.在OnInitDialog()中调用 SetWindowPlacement实现最大化;
BOOL CC_Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();// TODO: 在此添加额外的初始化
WINDOWPLACEMENT wndpl;
GetWindowPlacement(&wndpl);
wndpl.showCmd = SW_SHOWMAXIMIZED;
SetWindowPlacement(&wndpl);
UpdateWindow();
return TRUE; // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE
}
mfc如何设置窗口大小可调
更改控钮控件的底色可以派生一个CButton类,然后重载DrawItem函数,在这个函数中将底色设成白色。然后添加WM_ERASEBKGND 消息处理函数,//return CButton::OnEraseBkgnd(pDC); return TRUE;注释掉原来的 return 语句,改为直接返回 true; //想从窗口中去更改按钮的底色,比较麻烦,除非你用勾子函数。
mfc初始化窗口大小
1.可以用winC,就是直接在windows下编程。这个比较麻烦,因为所有的东西都必须自己写(如创建窗口,初始化等一些基本的)以前老师上课的时候讲过,理解了之后,感觉其实很简单,而且都是一个套路,看个例子就能明白的2.可以用MFC创建界面,里面要具体实现的东西,直接用C语言写就可以了,很方便,其实MFC就是对winC的一种封装,就是第一点说的你要写的那些基本的东西(创建窗口,初始化之类的),他都给你弄好了,不用自己写,直接创建一个工程就OK了3.可以创建C#工程,用C#创建界面(直接拖控件就行,像VB那样),然后,你要实现的东西用C语言写。或者,你先将要实现的东西,用C语言写好,编译成动态链接库DLL,然后在C#工程中调用该DLL。C#工程实际上就起到一个界面封装的目的,也比较方便
mfc 设置窗口大小
右键任务栏,取消锁定任务栏的勾选,将鼠标指向任务栏的上沿,光标变成上下箭头的时候,向下拖动任务栏就会变小了,反之就会变大。关于语言栏:右键任务栏-工具栏,在语言栏前面打上勾就可以了。在计算机显示器的图形用户界面上,工具栏放置了界面按钮、图标、菜单或其它输入/输出元素。
工具栏是显示位图式按钮行的控制条,位图式按钮用来执行命令。按工具栏按钮相当于选择菜单项;如果某个菜单项具有和工具栏按钮相同的ID,那么使用工具栏按钮将会调用映射到该菜单项的同一个处理程序。
可以配置按钮,使其在外观和行为上表现为普通按钮、单选按钮或复选框。
工具栏通常与框架窗口的顶部对齐,但 MFC工具栏可“停靠”在其父窗口的任何一边或在它自己的袖珍框架窗口中浮动。
工具栏也可“浮动”,用户可更改其大小并用鼠标拖动它。
当用户将鼠标移动到工具栏按钮上时,工具栏还可显示工具提示。工具提示是个弹出的小窗口,简要描述按钮的作用。
mfc设置对话框大小
必须将对话框指针传入线程函数,其后有三种方式可以实现
方法一:中直接调用m_progress.setpos(progresscount);
方法二:可以通过发送自定义消息,让对话框调用m_progress.setpos(progresscount);
方法三:可以把具体实现放在类内部的成员函数(非静态)中,而在线程函数值用对话框指针调用这个函数,这样比较方便。
mfc设置控件的大小
1.建立好单文档工程。
2.在view类里(注意不能是mainframe,否则你创建的按钮会被视图遮住,看不见)添加成员变量
cbuttonm_button;
3.创建这个按钮,比如在oncreate里面添加如下代码:
rectrect={0,0,100,100};//指定按钮的位置和大小
m_button.create(_t("我是按钮"),ws_visible,rect,this,id_button);
mfc窗口禁止调整大小
使用SetWindowPos函数
CWnd::SetWindowPosBOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy,UINT nFlags )。返回值如果函数成功,则返回非零值;否则返回0。
注意:这个窗口不是活动窗口。应用程序不能激活一个非活动窗口但同时又不把它带到Z轴次序的顶部。应用程序可以没有任何限制地改变活动窗口的Z轴次序。非顶层窗口可能拥有一个顶层窗口,但是反之则不成立。任何被顶层窗口拥有的窗口(例如对话框)都将自己变为顶层窗口,以确保所有被拥有的窗口位于它们的拥有者上方。在Windows 3.1或更新的版本中,可以将窗口移动到Z轴次序的顶部,并通过设置它们的WS_EX_TOPMOST风格而将之锁定在那里。
使用MoveWindow函数
void CWnd::MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );
void CWnd::MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );
参数:
x指定了CWnd的左边的新位置。
y指定了CWnd的顶部的新位置。
nWidth指定了CWnd的新宽度。
nHeight指定了CWnd的新高度。
bRepaint指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画操作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画
lpRectCRect对象或RECT结构,指定了新的大小和位置。说明这个函数改变窗口的位置和大小。对于顶层的CWnd对象,x和y参数是相对于屏幕的左上角的。对于子对象,它们是相对于父窗口客户区的左上角的。