OnSize()与OnPaint()的问题! [问题点数:20分,结帖人ATMCash4423]

Bbs2
本版专家分:242
结帖率 98.49%
Bbs5
本版专家分:2274
Bbs2
本版专家分:242
Bbs5
本版专家分:2274
VC中使用OnSize函数,设置控件位置的注意事项
VC在OnSize函数中可以根据当前窗口的大小,来改写窗口里面子控件的位置、大小。 但是注意,OnSize在窗口启动过程中,会多次被调用,所以,不能简单的在该函数中调用GetDlgItem()获取子控件的窗口指针。 最简单的方式,设置一个全局变量,初始化时设置为FALSE,在OnInitialUpdate()或者OnInitDialog()后将其设置为TRUE,在OnSize函数里使用GetD
函数onsize()与onsizing()区别
OnSize是控件大小发生变化后发给你的消息,你可以得到控件将要变成多大(cx和cy指定),OnSizing是正在改变的大小,例如用户点击着鼠标拖放一个控件的大小,这个时候就收到OnSizing了它们都是CWnd类的成员函数. OnSize()在窗口尺寸修改后被框架函数调用,函数原型是: afx_msg void OnSize( UINT nType, int cx, int c
CDlalog onsize
一个类可以控制CDialog,<em>onsize</em>时所有子对话框根据比例变化,使用简单方便,来源于网络分享下。
窗口大小变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo
最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘。 3个消息分别是:WM_SIZE、WM_SIZING、WM_GETMINMAXINFO;分别对应相应的处理函数:OnSize、OnSizing、OnGetMinMaxInfo。 当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFOWM_SIZINGWM_SIZE。
OnSize(),OnPaint()
开发中遇到<em>问题</em>,对话框标题栏按钮动态显示和隐藏,应该在这两个函数中 哪一个添加代码呢?
onsize后两次调用onpaint
创建的时候是这样的:rnm_wnd.Create(NULL,NULL,WS_CHILD,l_rc,this,10000);rn调整窗口大小后,跟踪发现先调用<em>onsize</em>(即便我的<em>onsize</em>函数只是__super::OnSize(nType,cx,cy),之后两次调用<em>onpaint</em>!这样有时响应就显得稍慢点了。不知道大家有没有碰到这个<em>问题</em>?怎么解决的?是窗口风格的<em>问题</em>吗?
OnSize问题
我 要让group box 里的控件随窗口的变化而变化rn如何实现?rn
Onsize问题
切分窗口后用<em>onsize</em>控制比例 可出现<em>问题</em> 不知道怎么回事rnrnrnMFCSDI.exe 中的 0x782b8375 (mfc80d.dll) 处未处理的异常: 0xC0000005: 写入位置 0x00000004 时发生访问冲突 rnrnrn在线等呀 rnrnrnrnBOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)rnrn // TODO: 在此添加专用代码和/或调用基类rn CRect rect;rn GetClientRect(&rect);rnm_wndSplitter.CreateStatic(this, 2, 2 ); rnm_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CshowView1), CSize(rect.Width()/2,rect.Height()/2), pContext);rnm_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CshowView2), CSize(rect.Width()/2,rect.Height()/2), pContext);rnm_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CMshowView3), CSize(rect.Width()/2,rect.Height()/2), pContext);rnm_wndSplitter.CreateView(1, 1, RUNTIME_CLASS(CshowView4), CSize(rect.Width()/2,rect.Height()/2), pContext);rnm_bSplitterCreated=TRUE;rn return TRUE;rn rnrnrnvoid CMainFrame::OnSize(UINT nType, int cx, int cy)rnrn CFrameWnd::OnSize(nType, cx, cy);rnrnrn CRect rect1;rnrn GetClientRect(&rect1);rnrn if (m_bSplitterCreated)rnrn rn m_wndSplitter.SetRowInfo(0,rect1.Height()/2,10);(出错)rn m_wndSplitter.SetRowInfo(1,rect1.Height()/2,0);rn rnrn m_wndSplitter.SetColumnInfo(0,rect1.Width()/2,0);rn m_wndSplitter.SetColumnInfo(1,rect1.Width()/2,0);rnrn rnrn rnrn rn m_wndSplitter.RecalcLayout();rnrn
OnSize
请问在VC中OnSize消息响应函数中我用GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rect);怎么运行不起来rn一运行就出错 能不能介绍几个类可以方便的移动控件和改变编辑框的大小
为什么我的OnSize函数执行了三次?请教一下
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: Add your
窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo
最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘。 3个消息分别是:WM_SIZE、WM_SIZING、WM_GETMINMAXINFO;分别对应相应的处理函数:OnSize、OnSizing、OnGetMinMaxInfo。 当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFOWM_SIZINGWM_SIZE。   OnGetMi
[MFC]Dialog窗口大小调整控制OnSize/OnSizing
参考:http://www.360doc.com/content/08/1210/09/799_2090143.shtml 参考:MSDN   0. 启用对话框为可调节对话框     在对话框 属性->外观Border,选择Resizing   1. 对话框的大小限制,预想好允许用户调整的大小范围,通常下限为我们自认为需要确保的大小信息      MinWidth   = ;
MFC窗体消息之尺寸被改变 OnSize()
在窗口的大小更改后,框架调用该成员函数。 afx_msg void OnSize(    UINT nType,     int cx,     int cy  ); 参数nType 指定请求的调整大小的类型。  此参数可以是下列值之一:     SIZE_MAXIMIZED 窗口最大化。     SIZE_MINIMIZED 窗口最小化。    SIZE_RESTOR
OnSize (UINT nFlags, int cx, int cy)事件的 cx 与 cy 中保存的是改变前的范围还是改变后的范围啊?
OnSize (UINT nFlags, int cx, int cy)事件的 cx 与 cy 中保存的是Window改变大小前的范围还是改变后的范围啊?我在 OnSize 事件中处理 SCROLL,
在MFC中OnSize可以自动调用OnPaint,机理是什么?
在OnSize中即使没有对OnPaint的调用,WM_PAINT也被发送。rn是MFC设定成这个样,还是SDK的原因?
MFC中窗口初始化时OnCreate、OnInitDialog、OnSize、OnPaint的 调用顺序
执行顺序(以箭头方向): OnCreate -&amp;gt; OnSize -&amp;gt; OnInitDialog -&amp;gt; OnPaint OnCreate:要创建一个窗口。 OnSize:用于窗口初始化前的一些参数设定。 OnInitDialog:初始化窗口,例如设置窗口字体、控件等。 OnPaint:在窗口上做一些绘制动作。...
OnPaint的问题
要实现这样一个功能:点击一个按钮后调用出一幅图画,然后在这幅图上绘制几条曲线。这些代码写在 procedure a;中,在OnPaint中调用了过程a。rn <em>问题</em>:在窗口发生重绘的时候没有实现上述功能,请大家帮助啊!多谢多谢...
OnPaint()的问题
请问OnPaint()函数系统是会连续调用吗?我在OnPaint()函数中写了个画圆的代码,能变大小,发现程序运行后就在连续重画。rnrn还请问OnPaint()函数中如何调用OnDraw()函数?rnrn我用vc6谢谢
OnPaint的问题
我在一个对话框中想要动态的更换我对话框的背景。在OnPaint函数中使用如下句子rn CWnd* pWnd=FromHandle(m_hWnd);rn CPaintDC dc(pWnd);rn CBitmap bmp;rn//下面的bmpfile是一个CString全局变量。我想自已选中一个bmp文件rn HBITMAP h=(HBITMAP)::LoadImage(AfxGetInstanceHandl(),bmpfile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);rn if(h==NULL)rn rn CDialog::OnPaint();rn return;rn rn rn bmp.Attach(h);rn BITMAP bm;rn bmp.GetBitmap(&bm);rn CDC dcMemory;rn dcMemory.CreateCompatibleDC(&dc);rn CBitmap* pOldmap=dcMemory.SelectObject(&bmp);rn dc.BitBlt(0,0,200,200,&dcMemory,0,0,SRCCOPY);rn dcMemory.SelectObject(pOldmap);rn CDialog::OnPaint();rn不知为什么,每次选中一个新的位图文件都不起作用。并没有更新对话框,把对话框最小话后又打开rn以前的背景都不见了。请行家指点。
关于void CMainFrame::OnSize(UINT nType, int cx, int cy) 的使用?
对这条语句不是很明白,请懂得的大侠给介绍一下。。。 void CMainFrame::OnSize(UINT nType, int cx, int cy) { CFrameWnd::OnSize(nT
MFC关于获取子窗口CWnd
-
MFC窗口怎么显示halcon采集到的图片
-
MFC中 的OnSize被调用的问题
MFC中 的OnSize、OnCreate、OnPaint、OnInitDialog()先后调用顺序及关系??尤其是OnSize什么时候被调用?调用几次啊? 有别人的个对话框程序,程序开始有这一句en
诡异的MoveWindow!!!OnSize()无响应
现象是这样: 当主对话框的大小发生改变时,我在OnSize()里对子控件进行了重新排列。 调用 m_pChild->MoveWindow(&rcChild, TRUE); 调整子控件大小。 诡异的是:
一个在OnSize里的问题
在框架类的OnSize()函数中设定了分割视图的相对大小比例。拖动窗口的时候各视图可以随窗口等比例的放大或缩小。但是在按下最大化、还原按钮后却不可以实现按照等比例的改变。rnrn在OnSize()函数中加入了RecalcLayout()后就解决了这个<em>问题</em>。rnrn我想问:为什么拖动的时候不加RecalcLayout()没事,而最大化的时候不加RecalcLayout()就不能正常的显示呢?
关于对话框的OnSize的问题
对话框为WS_POPUP的,Border为Resizingrnrn有最大化按钮,窗口在创建的时候是先发WM_INITDIALOG消息还是先发WM_SIZE消息啊?rn我在窗口中有个Group Box控件,想使他随窗口大小的改变而改变自己的大小来适应窗口。在窗口类中定义了一个CRect m_rectDlgClient;并在OnInitDialog()中rnGetClientRect(&m_rectDlgClient);rnrn然后在OnSize函数中加入rnvoid CXXXDlg::OnSize(UINT nType, int cx, int cy) rnrnrn CDialog::OnSize(nType, cx, cy);rn CRect rect;rn if ((m_rectDlgClient.Width() != 0) && (m_rectDlgClient.Height() != 0) && (nType != SIZE_MINIMIZED))rn rn GetDlgItem(IDC_GROUPBOX)->GetWindowRect(&rect);rn ScreenToClient(&rect);rn rect.SetRect(rect.left,rect.top,rect.right+cx-m_rectDlgClient.Width(),rect.bottom);rn GetDlgItem(IDC_GROUPBOX)->MoveWindow(&rect);rn rn rn if (nType != SIZE_MINIMIZED) rn rn GetClientRect(&m_rectDlgClient);rn rnrn为什么我在Debug模式下面运行就是正常的,而在Release模式下运行的时候说rn内存不能读啊?在这一句GetDlgItem(IDC_GROUPBOX)->GetWindowRect(&rect);rn的时候出错。。。rn而把窗口风格改成Overlapped就可以正常运行,Popup的对话框和Overlapped的对话框有什么区别吗?rnrn我在Release下在OnInitDialog和OnSize函数中设置断点时,程序是先在OnSize中先断的,请问大家是怎么回事啊?rnrn能不能给一个关于对话框的OnSize处理的例程,谢谢大家了
OnPaint的问题
我重载了cstatic类,在onPaint里面增加了些一行字的代码;rn我希望做到点击后就刷新变更文字。我是这样用的:rnvoid CValidatedcodeDlg::OnButton3() rnrn // TODO: Add your control notification handler code herern m_ctrlText0.InputData = "早点到";rn this->SendMessage(WM_PAINT,0,0);rn //this->Invalidate();rnrnvoid CValidatedcodeDlg::OnPaint() rnrn。。。rnm_ctrlText0.Invalidate();rn m_ctrlText0.UpdateWindow();rn。。。rnrn可是这样做文字每一次都是写在上一次的上面,最后就乱了。我如果加上this->Invalidate();就可以了,可是这样全屏都扇动,很麻烦。怎么解决呢?谢谢大家。rnrn加字的代码如下:rnLOGFONT lf;rn rn dc.GetCurrentFont()->GetLogFont(&lf);rn rn CFont font, *pOldFont;rn rn lf.lfCharSet=134;rn rn lf.lfHeight=-25;rn rn lf.lfWidth=0;rn rn strcpy(lf.lfFaceName, "华文行楷");rn rn font.CreateFontIndirect(&lf);rn rn pOldFont=dc.SelectObject(&font);rn rn dc.SetBkMode(TRANSPARENT);rn rn // 更改当前画笔为空rn rn CPen pen(PS_NULL, 1, RGB(255, 0, 0)), *pOldPen;rn rn pOldPen=dc.SelectObject(&pen);rn rn // 更改当前刷子rn rn CBrush br, *pOldBrush;rn rn pOldBrush=dc.SelectObject(&br);rn rn // 开始一个路径rn rn dc.BeginPath();rn rn dc.TextOut(20, 10, InputData);rn rn dc.EndPath();rn rn // 绘制渐变效果rn rn dc.SelectClipPath(RGN_COPY);rn rn for (int i=255; i>0; i--)rn rn rn rn int iRadius=(600*i)/255;rn rn dc.SelectObject(pOldBrush);rn rn br.DeleteObject();rn rn br.CreateSolidBrush(RGB(255, i, 0));rn rn dc.SelectObject(&br);rn rn dc.Ellipse(-iRadius, -iRadius/3, iRadius, iRadius/3);rn rn rn rn // 恢复设备上下文的原有设置rn rn dc.SelectObject(pOldFont);rn rn dc.SelectObject(pOldPen);rn rn dc.SelectObject(pOldBrush);
一个CWnd对象的onpaint函数中,动态Create两个子窗口时造成wincore.cpp中的断言错误。
-
MFC 的onsize函数不响应
在做一个简易total commander的时候,建立了两个FormView各占一边,分别在这两个视图类上放置了ListCtrl空间,然后用OnSize函数调整控件的显示,使控件可以占满视图,这是两个
对话框OnSize 自动调整控件大小和位置
对话框执行<em>onsize</em>消息时根据参数自动调整对话框上的控件大小和位置到合适位置,对话框执行<em>onsize</em>消息时根据参数自动调整对话框上的控件大小和位置到合适位置。
mfc子窗体OnSize后,最小化还原,控件全没了
一个程序中,创建了一个非模态对话框,为了更加方便,我设置了这个对话框能自由调整窗口大小,控件随之而变大 void Cdialogservice::OnSize(UINT nType, int cx,
OnPaint()的问题!!!
void CLoginWnd::OnPaint()rnrn CPaintDC PDC( this );rn PDC.SetBkMode( TRANSPARENT );rn PDC.TextOut( 186, 115, _T( "角色:" ) );rnrnrnCLoginWnd继承自CWndrnrn启动后没有显示,必须把窗体拉到屏幕外,在拉进来(相当于重画一次),才能显示出来,怎么解决?
Onpaint的问题
修改单选按钮的文字颜色rnrn由于单选按钮是button, 可是我不想用bs_ownerdraw,因为rnbs_owendraw后,会导致整个按钮看不见了,rnrn而且我只是简单的修改文字颜色,没有必要大动干戈。rnrn所以<em>onpaint</em>里实现。rnrnvoid CMyButton::OnPaint()rnrnrn rn CButton::OnPaint();rn rnrn InvalidateRect(NULL);rn CPaintDC dc(this); // device context for paintingrn // TODO: 在此处添加消息处理程序代码rn // 不为绘图消息调用 CButton::OnPaint()rn dc.SetTextColor(RGB(0,0,255));rnrnrn结果不管用!!!!rnrn
★★★OnPaint()的问题
我在菜单响应函数的代码:rnvoid CMainFrame::OnHuatu() rnrn Dialog2 dlg;rn dlg.m_Name="*.dat";rn if (dlg.DoModal()==IDOK)rn rn str="E:\\Test\\"+dlg.m_Name;rn as=true;rn Invalidate(); //不知道是不是这样调用<em>onpaint</em>()rn rn rn elsern return; rnrnrnrnrnvoid CMainFrame::OnPaint() rnrn if (as) //初始化为falsern rn CFile file; rn pFileName=(char*)(LPCTSTR)str;rn file.Open(pFileName,CFile::modeReadWrite);rn …… rn 读数据画图rn ……rn rnrn但是运行时点击菜单项图象一闪而过!又为空白!rn不知为什么??rn小弟对<em>onpaint</em>()和ondraw()弄不清楚!rn到底遇到什么情况才调用这两个函数,怎么调用,调用顺序如何?rn恳请大家指点,谢谢!!rn
OnPaint问题
各位英雄好汉,小弟我在编程时遇到这样难题:rn我采用MFC 的MDI 结构,调用CFormView界面,其中CFormView中的Picture控件通过抓图:rnCString wnd_name=_T("Figure 1");rn [color=#FF0000]hFig = ::FindWindow(NULL,wnd_name);[/color]rn if (hFig==NULL)rn rn hFig = ::FindWindow(NULL,wnd_name);rn rn ::ShowWindow(hFig, SW_HIDE);rn CRect figure_rect;rn CWnd *myfigure = GetDlgItem(IDC_STATIC);rn myfigure->GetWindowRect(&figure_rect);rn long fig_width = figure_rect.Width();rn long fig_height = figure_rect.Height();rn ::SetParent(hFig,myfigure->GetSafeHwnd());rn // 去掉MATLAB Figure窗口的标题栏和框架属性rn long lStyle = ::GetWindowLong(hFig,GWL_STYLE);rn ::SetWindowLong(hFig,GWL_STYLE,lStyle );rn ::ShowWindow(hFig, SW_SHOW);rn // 将MATLAB Figure窗口移动到空间位置rn ::SetWindowPos(hFig,NULL,0,0,fig_width+8,fig_height+33,SWP_NOZORDER | SWP_NOACTIVATE);rn // 显示窗口 rn ::ShowWindow(hFig, SW_SHOW); rn // 激活主窗口rn ::SetForegroundWindow(this->m_hWnd);rn[color=#FF0000]以上也就是抓取MATLAB的仿真图像,使其显示在picture控件中。[/color]rnrn接下来,我通过OnPaint绘图来画:rnvoid CsubForm::OnPaint()rnrn CPaintDC dc(this); // device context for paintingrn // TODO: Add your message handler code herern // Do not call CFormView::OnPaint() for painting messagesrn ::ShowWindow(hFig, SW_HIDE);rn CRect figure_rect;rn CWnd *myfigure = GetDlgItem(IDC_STATIC);rn myfigure->GetWindowRect(&figure_rect);rn long fig_width = figure_rect.Width();rn long fig_height = figure_rect.Height();rn [color=#FF0000]::SetParent(hFig,myfigure->GetSafeHwnd());[/color]rn // 去掉MATLAB Figure窗口的标题栏和框架属性rn long lStyle = ::GetWindowLong(hFig,GWL_STYLE);rn rn ::SetWindowLong(hFig,GWL_STYLE,lStyle );rn ::ShowWindow(hFig, SW_SHOW);rn // 将MATLAB Figure窗口移动到空间位置rn ::SetWindowPos(hFig,NULL,0,0,fig_width+8,fig_height+33,SWP_NOZORDER | SWP_NOACTIVATE);rn // 显示窗口 rn ::ShowWindow(hFig, SW_SHOW); rn // 激活主窗口rn ::SetForegroundWindow(this->m_hWnd);rnrnrn我采用类似的代码实现,但是<em>问题</em>来了,当我的子窗口CFormView移到父窗口里,即被父窗口重叠一部分时,我此时拖拽子窗口时,会很卡顿,跟踪的原因就是在OnPaint 中的这个[color=#FF0000]::SetParent(hFig,myfigure->GetSafeHwnd());[/color],我现在不知道该怎么处理了。请问大家这是什么原因,该怎么解决?谢谢。
OnSize(UINT nType, int cx, int cy)
这样得到的cx,cy是不是屏幕的宽度和高度?和GetSystemMetrics又有什么区别呢?我想设计一个任何像素的屏幕都能正常显示的界面,该用哪个函数?
Onsize()时如何解决闪烁现象?我已经使用了双缓冲,在滑块移动时没出现闪烁,但是窗口大小改变时,却闪烁了
如何解决这个<em>问题</em>?大家发言
编辑框控件随窗口大小变化重写OnSize()
最近在学mfc, 模仿一个记事本。文本内容用编辑框来显示。 当窗口变化时,通过以下代码,可以实现编辑框随窗口一起变化。 需要注意的是在使用编辑框指针前,一定要加上判断。因为第一次OnSize() 被调用时,编辑框对象还没有生成,只有窗口对象。 void CNotePadDlg::OnSize(UINT nType, int cx, int cy)  { CDialog::OnSize(
MFC重写OnSize()之后控件丢失
我重写了窗口的OnSize()消息,想要控件的布局随着窗口的大小变化,但是点击最大化,最小化的侍候,窗口中的控件就丢失了,请各位高人指点迷津。 具体重写代码给出如下:void CMyEverythin
MFC 窗口自动填充 消息Onsize()
void CRightView::OnSize(UINT nType, int cx, int cy) { CFormView::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码 CSize sizeTotal; sizeTotal.cx = cx; sizeTotal.cy = cy; SetScrollSizes(MM_TEXT, siz
opengl中OnSize的问题
我在OnDraw中画了两个图,窗口改变后只留下一个矩形,代码如下:rnrn glTranslatef(0.0,0.0,-30.0);rn glPushMatrix();rn glBegin(GL_POLYGON);rn glNormal3f(0.0,0.0,1.0);rn glVertex3f(-5.0,0.0,0.0);rn glVertex3f( 5.0,0.0,0.0);rn glVertex3f( 5.0,5.0,0.0);rn glVertex3f(-5.0,5.0,0.0);rn glEnd();rn glTranslatef(0.0,-8.0,0.0);rn auxSolidSphere(1.0);rn glPopMatrix();rn请各位大虾指点一下,谢谢rn
OnSize的奇怪问题
在多文档中我在CChildFrame的一个函数中用rnLONG l = MAKELONG(5 , 10) ;rnPostMessage(WM_SIZE , SIZE_RESTORED , l) ;rn但是发现子窗口并没有改变,而我在CChildFrame::OnSize()中rn得到的值确实是5和6,位什么呢?我改成SendMessage()或是直接调用rnCChildFrame::OnSize(SIZE_RESTORED , 5 , 10)都没有用。
求助:OnSize的使用问题
最近有个项目,需要实现两个界面的切换,两个界面的大小不同,我使用了OnSize的处理方式,代码如下:rnvoid CMainFrame::OnSize(UINT nType, int cx, int cy) rnrn CPicApp *pFjApp = (CPicApp*)AfxGetApp();rn int SysScreenX = GetSystemMetrics(SM_CXSCREEN);rn int SysScreenY = GetSystemMetrics(SM_CYSCREEN); //屏幕的像素rn if(pFjApp->ScadaMode==1) //如果等于1,改变窗口rn rn MoveWindow(0,84, SysScreenX,SysScreenY-84); //显示方式1rn rn else //否则全屏显示rn rn MoveWindow(0,0,SysScreenX,SysScreenY); //显示方式2,即全屏显示rn rnrn在处理的过程中,如果初始化为全屏显示,再切换到方式1时,没有任何<em>问题</em>,但如果初始化为显示方式1,rn再切换到方式2(即全屏)时,不能全屏显示,只是把方式1的屏幕向上移动了,下面空出一片空白。rn我也单步跟踪了,像素的获取没有发生变化,感觉这时处理时,MoveWindow不能改变窗口大小,只能改变rn位置,就算我把SysScreenY改的很大,也无济于事。rn请各位高手给个解决方法,谢谢了!
OnSize()消息问题
void CMainWindow::OnSize(UINT nType, int cx, int cy)rnrn CFrameWnd::OnSize(nType,cx,cy);rn.....................rnrnrn为什么OnSize()里面又嵌套个OnSize() 这代表什么意思?rnrnCMainWindow是派生一CFrandWnd类的
MFC自绘窗口的时候,OnSize
void CDialogEx::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); //计算偏移 INT nYPos=1; INT nXPos=cx-nCloseWidth; //设置位置 m_rcButton[BST_CLOSE].SetRect(nXPos,
MFC窗口变化消息( OnSize、OnSizing和OnGetMinMaxInfo)
最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘。 3个消息分别是:WM_SIZE、WM_SIZING、WM_GETMINMAXINFO;分别对应相应的处理函数:OnSize、OnSizing、OnGetMinMaxInfo。 当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFOWM_SIZINGWM_SIZE。
一个有关MFC的OnSize和MoveWindow结合的问题
-
MFC关于OnSize和MoveWindow关系的梳理
-
如何调用ONSIZE??????
我想在代码中执行<em>onsize</em>()中的代码,但是不知道如何调!<em>onsize</em>有三个参数.我不想调整窗口的大小.求助!
有关OnSize的问题??
为什么我的窗口在进行OnSize的时候,窗口不会随着变化,只有当鼠标左键最后弹起时,才显示出最后改变的结果??到底可能是什么原因呢?rnrn我的窗口是个Wnd,不是Dlg,窗口的属性为 rn cs.style = WS_POPUPWINDOW|WS_SIZEBOX;rn cs.dwExStyle = WS_EX_NOACTIVATE;rnrn老大们,帮帮忙吧~~~
函数onSize()的问题
各位高手:rn 我碰见一个<em>问题</em>:我不知道控件的onSize()是什么时候系统调用的:是控件在创建完成而没有显示的时候吗?rn 还有我想对控件的字体进行设置.所以使用了WM_SETFONT消息,但我在onSetFont()函数里设置了新的字体之后,控件的字体并没有变,为什么呢?
重写OnSize()问题
void CDBDialogView::OnSize(UINT nType, int cx, int cy)rnrn CFormView::OnSize(nType,cx,cy);rn CRect rect;rn this->GetClientRect(&rect);rn m_tree1.SetWindowPos(&m_tree1,rect.left,rect.top,rect.Width(),rect.Height(),SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);rn return;rnrnrnCDBDialogView为CFormView派生,m_tree1是CDBDialogView的tree控件。rn调整窗口大小时tree控件怎么大小不变呢?rnrn
onsize函数问题
假如我现在有个SDI程序,View是Form View,想在上面放个Tab Control,包含两个Dialog。rn[code=C/C++]rnvoid CTab_testView::OnInitialUpdate()rnrn CFormView::OnInitialUpdate();rn GetParentFrame()->RecalcLayout();rn ResizeParentToFit();rn rn //为Tab Control增加两个页面rn m_tab.InsertItem(0, _T("First"));rn m_tab.InsertItem(1, _T("Second"));rn rn //创建两个对话框rn m_page1.Create(IDD_DIALOG1, &m_tab);rn m_page2.Create(IDD_DIALOG2, &m_tab);rnrnrnrn[/code]rnrnrnrn我想知道我想在CTab_testView的<em>onsize</em>中调用IDD_DIALOG1的 <em>onsize</em>(),应该怎么做?
在vue中监听windows.onsize自适应屏幕
http://blog.csdn.net/efficiency9/article/details/72857579
MFC OnSize事件调用时间
在Ocx控件被加载时,第一次调用OnSize事件实在控件中的各个部件未加载前,此时如果操作控件中的控件会出现控制针异常,需要提前判断。 CTestDlg m_dlg; int CTestCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (COleControl::OnCreate(lpCreateStruct) ==
消息OnSize的用法
面板的控件随面板的大小,位置大小也可以变化。afx_msg void OnSize(UINT nType, int cx, int cy);void CstatusBar_MenuView::OnSize(UINT nType, int cx, int cy) {            CFormView::OnSize(nType, cx, cy);           if
点击窗口最大化调用onsize问题
用vs2010创建一个对话框,创建时代最大化、最小化按钮,但点击最大化,最小化时没有掉用WM_SIZE函数数,这是为什么,不解
MFC 控件大小随窗体改变而改变大小-OnSize
转载:https://blog.csdn.net/zhoxier/article/details/7776128 一个基于对话框的MFC界面,怎么样才能让对话框里的控件能和对话框同比例变小变大?今天我一直想解决这个<em>问题</em>,这是师姐留给我的任务。经过在网上的大量搜素,终于找到了解决方法,其实比较简单。 &amp;nbsp;&amp;nbsp; 一般情况下...
CControlBar Onsize问题
CControlBar 如何设置大小呢?rnrn比如,我想让它最大拉伸到200的宽度,这样应该怎么做呢?rn谢谢。rnrn他无法响应 OnSize 和 OnSizing。
OnSize的问题!——在线等
在ListView的程序中,想把列的宽度和整个视图联系起来,ListVIew有4列,每列占客户区的1/4,可是当程序最大话后每列的宽度不变,怎么做才能使列的宽度和客户区联系起来呢,最好有范例代码!
OnSize的时候闪烁问题
rnrn在Dialog里放了很多个Btn,Static之类的控件,然后怎么做能不让他闪烁?rnrn我在Dialog的OnPaint里用了双缓冲,然后OnEraseBk()返回TRUE,rn在Static,Btn等的DrawItem里也使用了双缓冲,然后OnEraseBk()返回TRUE。但是拉动Dialog的时候还是闪烁,是怎么回事?rn怎么解决?rnrn给个例子,或则连接,成熟的程序都可以。
关于OnSize函数的问题!
CFromView 对象为什么任何操作 首个参数为什么一直是0啊.rn按照MSDN 可不是这么说的.
CFormView的OnSize问题
我有个CtestView从CFormView继承来的rn我在上面加了个ListCtrl控件rn为什么在OnSize函数中rn CListCtrl * plc=NULL;rn plc = (CListCtrl *)GetDlgItem(IDC_LIST2);rnrnplc得到的指针都是NULL呢?rnrnCListCtrl m_listctrl;定义变量也一样。
我想要在OnSize消息处理函数中,重新计算cx和cy的值,让我的窗口和新的cx,cy值一样大?
我想要在OnSize消息处理函数中,重新计算cx和cy的值,让我的窗口和新的cx,cy值一样大? 也就是说,假设窗口原来cx,cy大小是100,100,(在OnSize中得到) 我想在OnSize中设
对话框的OnSize()和OnWindowPosChanged()的理解
最近的项目是一个对话框的项目,之前没有做过这种项目,
为什么在重写的onsize函数里面都会首先调用基类的CDialog::Onsize
为什么在重写的<em>onsize</em>函数里面都会首先调用基类的CDialog::Onsize,而且我看有的重写<em>onsize</em>接口中,只调用了CDialog::Onsize,而没有做其他操作,既然这样,为什么要重写
C++创建控件并响应三部曲、设置窗口全屏、OnSize实现控件大小改变、跟踪调试顺序
一、创建控件并响应事件三步曲:添加成员变量,变量类型为所创建控件的类型,如CButton 1.手动添加 afx_msg void OnmyButton();   2.手动添加实现函数;   3.关联:MESSAGE_MAP:ON_BN_CLICKED(IDC_MYBUTTON,OnmyButton)。 二、VC设置窗口全屏显示的方法:通过设置窗口显示状态和窗口位置来使窗口全屏。 在窗
onpaint函数onpaint函数
ONpaint默认是没有函数参数的rn重载<em>onpaint</em>,可否带参数呢rnrnwm_paint消息触发<em>onpaint</em>函数,其触发代码是什么?
OnPaint()
我用调试板在CMyTreeCtrl::OnPaint()中通过FillRect将我的CMyTreectrl的背景色做成我我想要的效果,但是CMyTreeCtrl中的item却不见了,请问该如何处理,当然,我的背景色不是单色
OnPaint
OnPaint 在窗口隐藏或处于其他窗口下面时就不被调用了,使用 InvalidateRect 也不管用 :( !
onpaint
我把ondraw()函数中的代码移到<em>onpaint</em>函数中,在用滚动屏幕时会出现重叠现象,请问如何解决,最好给段源代码。
CWnd::OnSize
在窗口的大小更改后,框架调用该成员函数。 afx_msg void OnSize( UINT nType, int cx, int cy ); 参数 nType 指定请求的调整大小的类型。 此参数可以是下列值之一: SIZE_MAXIMIZED 窗口最大化。 SIZE_MINIMIZED 窗口最小化。
OnSize 改变控件的大小
重载 OnSize 函数   声明: afx_msg void OnSize(UINT nType,  int  cx,  int  cy); // 调整控件大小     // 调整控件大小   void CZTCServerDlg::OnSize(UINT nType, int cx, int cy)  {    CDialogEx::OnSize
Onpaint 界面刷新的问题。附上代码
//重画消息 VOID CTableViewFrame::OnPaint() { //创建 DC CPaintDC dc(this); //获取区域 CRect rcClip; CRect rcCli
onpaint()
我希望应用程序的界面居中显示,重载了<em>onpaint</em>(),代码如下:rnif (IsIconic())rn rn CPaintDC dc(this); // device context for paintingrnrn SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);rnrn // Center icon in client rectanglern int cxIcon = GetSystemMetrics(SM_CXICON);rn int cyIcon = GetSystemMetrics(SM_CYICON);rn CRect rect;rn GetClientRect(&rect);rn int x = (rect.Width() - cxIcon + 1) / 2;rn int y = (rect.Height() - cyIcon + 1) / 2;rnrn // Draw the iconrn dc.DrawIcon(x, y, m_hIcon);rnrnelsern rn CDialog::OnPaint();rn rnrn但是编译的时候系统报错rn dc.DrawIcon(x, y, m_hIcon); 说m_hIcon没有声明rn可是我看到好多运行正常的应用程序代码都是这样写的,我的错误在哪呢?rn
OnSize没有响应
void CAddDevCruiseSet::OnSize(UINT nType, int cx, int cy)rnrn CDialog::OnSize(nType, cx, cy);rn rn GetClientRect(m_rect);rn CRect rect2,recGroup,recBtn;rn rn if(GetDlgItem(IDC_LIST_ALL_DEVRECORD))rn rn GetDlgItem(IDC_LIST_ALL_DEVRECORD)->GetWindowRect(rect2);rn ScreenToClient(rect2);rn GetDlgItem(IDC_SET_CRUISETYPE)->GetWindowRect(recGroup);rn ScreenToClient(recGroup);rn GetDlgItem(IDC_BTN_UPDATA_ALL_DEVCRUISE)->GetWindowRect(recBtn);rn ScreenToClient(recBtn);rnrn //GetDlgItem(IDC_LIST_ALL_DEVRECORD)->MoveWindow(rect2.left ,rect2.top ,m_rect.Width ()-50,rect2.Height ());rn int tmpHeight=m_rect.Height ()-90-3*recBtn.Height();//rect2.top-hTask-5;rn GetDlgItem(IDC_LIST_ALL_DEVRECORD)->MoveWindow(rect2.left ,rect2.top ,m_rect.Width ()-30-recGroup.Width(),tmpHeight);rn GetDlgItem(IDC_BTN_UPDATA_ALL_DEVCRUISE)->MoveWindow(rect2.left,rect2.top+tmpHeight+recBtn.Height(),recBtn.Width(),recBtn.Height());rn rnrnrn我在OnSize函数里面设置了断点。发现,当程序刚刚启动,能运行到断点处中断。可是程序完全运行后,我点击最大化按钮和还原按钮,窗口的尺寸已经发生变化了,可以OnSize函数里面的断点却没有任何中断反应。请教OnSize函数工作原理?
关于OnSize();
我在响应窗口OnSize(UINT nType, int cx, int cy)函数时,想要改变里面控件的大小,但是我在设计控件时用的单位是DLU,好象与传进来的参数cx与cy的单位不一致,应该怎么处理呢?不知道能不能换算单位。rn我设置控件大小使用MoveWindow(),可能是由于单位不一致,没有出现想要的效果。rn,有没有代码可以参考一下。比如希望控件边界与整个窗口的客户区的边界保持一定距离。rn谢谢!
OnDraw()和OnPaint()的区别
<em>问题</em>:我在视图画的图象或者文字,当窗口改变后为什么不见了?OnDraw()和OnPaint()两个都是解决上面的<em>问题</em>,有什么不同?答:OnDraw()和OnPaint()好象兄弟俩,因为它们的工作类似。至于不见了的<em>问题</em>简单,因为当你的窗口改变后,会产生无效区域,这个无效的区域需要重画。一般Windows会发送两个消息WM_PAINT(通知客户区 有变化)和WM_NCPAINT(通知非客户区有变化)...
MFC画图——OnPaint()函数画图(双缓冲画图)
我的目的: 在对话框的static控件中画图。 我的做法是: 1、建一个普通类Class A完成画图功能(会将对话框类Class D的画图区域传递给Class A) 2、在Class D中的Onpai
MFC中OnDraw与OnPaint的区别
OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。 OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数
OnPaint函数在什么时候被调用
是程序刚创建窗口的时候被调用还是要发送什么信息?
C# 图形显示Onpaint
C#里面有一个Onpaint本来我以为是每一段时间刷新一次,但是不是的,这个事件好像只有界面重写的时候才会调用这个事件,所以需要修改显示的图像信息,通过这个事件就不能直接修改显示信息,必须触发重写事件才能刷新我要显示的图像。1、对Paint事件编程,首先根据Paint事件参数获取无效区域,然后在无效区域中按要求绘制就可以了。无效区域是整个图形的一个部分,一般来说不可能对整个图形进行绘制,而是绘制其
onsize函数
IDD_HELLO_DLG DIALOGEX 0, 0, 386, 226rnSTYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | rn WS_CAPTION | WS_SYSMENU | WS_THICKFRAMErnEXSTYLE WS_EX_OVERLAPPEDWINDOWrnCAPTION "Hello World"rnFONT 8, "MS Shell Dlg", 400, 0, 0x1rnBEGINrn DEFPUSHBUTTON "OK",IDOK,329,204,50,14rn LTEXT "Ser:",IDC_NAME,7,18,347,24rn LTEXT "Des:",IDC_SERVICE_DESCRIPTION,7,42,39,17rn LTEXT "Static",IDC_SORT,7,59,372,145,WS_BORDER,rn WS_EX_CLIENTEDGErnENDrnrn上面是对话框,我想知道怎么写<em>onsize</em>函数比较好,本来想用ONSIZE的长和宽与以前的比,然后设定位置,后来发现movewindow的参数都是int,所以不行rn清问应该怎么写好?
关于对话框的onsize调整问题
忘单文档界面程序中添加了一个对话框rn相应对话框的wm_size的<em>onsize</em> 函数rn现在要求的是:左右,上下拖动对话框改变大小rn要求必须移动50个Pixel才改变对话框大小rn即,如果某一次拖动小于 50 pixel,则对话框大小不改变rn当该次拖动大于50 pixel 的时候,改变对话框大小 50pixelrn然后重新开始计数rnrn这个该怎么做呢?rn多谢!!rn
关于CFrameWnd::OnSize问题请教
本人创建了一个mdi程序,使用了标签页在切换视图时会闪烁,然后重写了<em>onsize</em>,切换时不再闪烁,rn但是存在一个疑问?rnvoid CChildFrame::OnSize(UINT nType, int cx, int cy)rnrn //CMDIChildWnd::OnSize(nType, cx, cy);rn if (nType != SIZE_MINIMIZED)rn rn RecalcLayout();rn rnrn如果按默认调用CMDIChildWnd::OnSize,此处将调用CWnd::OnSize(nType, cx, cy);rn看注释說,这句对MDI窗口很重要.rn想清楚去掉了会有什么影响?rnvoid CFrameWnd::OnSize(UINT nType, int cx, int cy)rnrn CWnd::OnSize(nType, cx, cy); // important for MDI Childrenrn if (nType != SIZE_MINIMIZED)rn RecalcLayout();rnrn请大侠指点,谢谢!
计算机使用小常识--提高开机速度下载
如何提高计算机开机速度 点“开始”——>“运行”——>再输入“msconfig"回车把选项卡切换到启动项(右数第二个)然后注意到“命令”那一列,只要是D盘、E盘、F盘,C:\Program Files...目录的,就把前面的勾去掉,点确定重启完成。 相关下载链接:[url=//download.csdn.net/download/wushide5510/3260492?utm_source=bbsseo]//download.csdn.net/download/wushide5510/3260492?utm_source=bbsseo[/url]
js 特效 html 特效 大段文字的翻滚处理下载
js 特效 html 特效 大段文字的翻滚处理 js 特效 html 特效 大段文字的翻滚处理 相关下载链接:[url=//download.csdn.net/download/a350752425/3362700?utm_source=bbsseo]//download.csdn.net/download/a350752425/3362700?utm_source=bbsseo[/url]
诺顿注册机下载
诺顿注册机,用于各版本。可以使用。还可以 相关下载链接:[url=//download.csdn.net/download/a463223329/4257837?utm_source=bbsseo]//download.csdn.net/download/a463223329/4257837?utm_source=bbsseo[/url]
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合
我们是很有底线的