MFC关于获取子窗口CWnd

图片说明
1.需要实现的功能,点击Button然后弹出一个自定义的WaveArea对话框,然后获取WaveArea->Group的CWnd指针。
2.问题图片说明
2.但是我通过和WaveArea对话框绑定的CMYDialog中的OnSize()函数去获取这个CWnd,得到的总是NULL。
3.测试过,不管是创建模态对话框还是非模态对话框,都无法在自己定义的类中获取CWnd 指针。
求大神指导!!

1个回答

你在CTestGroupDlg中定义一个WaveArea对话框类的成员变量或者指针。创建和显示的WaveArea非模态对话框的时候先判断之前是否已经创建,如果已经Create过了,就直接调用ShowWindow显示即可。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MFC子窗口获取子窗口句柄
假设我现在有三个窗口A,B,C,三个窗口的基类我填的都是CDialog,在A窗口类中我定义个指针CDialog m_dia;rn并在A中用m_dia创建两个子窗口B,C,用m_dia->create()和showwindow()显示;B和C窗口的属性我都设置为rn无边框,和child属性,rn然后问题来了,我想在窗口B的类中向窗口C发送个自定义消息,也就是子窗口向子窗口发消息,rn但是C的句柄我怎么都获取不到,rnFindWindow();的话得知道标题名,但我的子窗口设置为无边框,属性栏中标题栏变灰设置不了,填类名也找不到rnGetDlgItem的话我在B窗口中C还没有创建,我是需要在B中再Create创建一次C??另一个子窗口句柄怎么获取呢?
CWnd,创建子窗口,求教!!!
在创建主窗口时,用了:CWnd* pwnd = AfxGetMainWnd();rn现在若再想创建一个子窗口,在主窗口中点一个button来弹出这个子窗口。。rn请问一下,我应该怎么像创建主窗口指针一样来创建一个指向子窗口的指针,求教~~谢谢了!
关于mfc子窗口的问题
我建立的是单文档office,ribbon格式rn我想要单击button1后在右下空白处显示子窗口rn[img=https://img-bbs.csdn.net/upload/201409/21/1411281966_441393.png][/img]rn结果,显示区域变成这样了rn[img=https://img-bbs.csdn.net/upload/201409/21/1411281974_370245.png][/img]rn我在按钮响应函数里写的是这样的rnvoid CMainFrame::OnButton2()rnrn// TODO: 在此添加命令处理程序代码rnCRect appArea;rnGetWindowRect(&appArea);rnCD1 *p = new CD1(this);rnp->Create(IDD_DIALOG1);rnp->SetParent(this);//设置mainfrm为父窗口rnp->MoveWindow(appArea);//子窗口移动到appArea指定的区域rnp->ShowWindow(SW_SHOW);rn
MFC—获取子窗口View指针
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd); CChildFxFrame* pChildFxFrame = (CChildFxFrame*)pMainFrame->GetActiveFrame(); CFxView* pView = (CFxView*)pMainFrame-&g...
mfc获取子窗口句柄总结
1.FindWindow,根据顶级窗口的类名或者标题名获得顶级窗口句柄 2.::EnumChildWindows(m_mhd,EnumChildProc,0); 根据顶级窗口筛选出可以可以分辨出离目标子窗口最近的子窗口,EnumChildProc这里可以获得每个子窗口的句柄,可以根据句柄获得子窗口所有消息,是回调函数 BOOL CALLBACK EnumChildProc(   HWND
MFC多文档获取子窗口句柄
在mfc多文档中,我新建了几个子窗口 “文档1”“文档2”“文档4”rn现在我想获取到这个子窗口的HWN,请问如何实现
MFC获取子窗口句柄失败
我的目的是给子窗口发送消息rnrn代码如下:rn[code=c] CString ss = "打卡系统--主界面";rn CWnd *pwnd = FindWindow(NULL,ss); //希望找到资源管理器rn HWND hwndParent = pwnd->GetSafeHwnd(); //得到父窗口的HWNDrn ss = "print";rn pwnd = FindWindowEx(hwndParent,NULL,ss,NULL);rn HWND hwnd = pwnd->GetSafeHwnd();rn ::PostMessage(hwnd, WM_USER_INPUTMSG_OK, 0, (LPARAM)&merchant);[/code]rn执行结果是[img=https://img-bbs.csdn.net/upload/201609/08/1473327045_375562.jpg][/img]rnrn这是我的界面rn[img=https://img-bbs.csdn.net/upload/201609/08/1473327116_684569.png][/img]rnrn就是给里面的打印界面传消息。。。rnrn希望大神告诉我怎么做
MFC中怎么获取cwnd的派生类的指针
有一个自定义的类rn它是由cwnd类派生的.. rn请问一下怎么获取由这个类构造的对象的指针
CWnd 子窗口z轴问题
rn我有一窗口,以它为父窗口,创建了一些WS_CHILD属性的子窗口(派生于CWnd)rnrn当父窗口上显示着一个子窗口A,再显示另外一个子窗口B时,这个后来的子窗口B总是得不到鼠标的焦点rnrnrn我希望这个子窗口B能像一个浮动窗口一样,在最上层浮动,随时打开,或者隐藏到父窗口的一侧,rn而不用管他的下层显示的是哪个子窗口rnrn请问一下这种情况该怎么设置窗口的属性呢?rnrn
CWnd子窗口类的指针问题
怎样获得 子窗口(CWnd)类 的指针,然后把该指针转成 CDC的指针,要代码,谢谢! (父窗口类也是CWND)
关于CWnd*和CWnd**
有如下内容:rn[code=c]CWnd **m_wnds[8];rnCWnd *m_pMyWnd = NULL;rnm_wnds[0] = &m_pMyWnd; // error[/code]rnrn第三句为什么会报错?求解。。。。
关于MFC父窗口,子窗口的问题
emmm.....rn我有两个窗口类A,Brn在A.h里面声明B b;rn然后A.cpp里面OnInitDialog()里 b.create(IDD,this);rn//在B.cpp里面include A.h;rn在B.cpp 定义了全局变量BYTE* p;rn然后在B的按钮函数里p = new BYTE[10];rnrn呃,有点乱....rn那么问题来了,我在关闭A窗口的时候,在B里new出来的数组咋销毁?就是我咋找到这个p?rnrn然后我现在关闭A窗口的时候rnCDialogEx::OnOK();rn//转到其他窗口rn然后我看也没有内存泄漏啥的啊,咋回事?rnA和B这种关系算父子窗口 吗?rn
MFC关于子窗口返回的问题
我的一个父窗口,在下面有2个子窗口,2个子窗口打开的方式都是一样的rn sy1 dlg;rn if(dlg.DoModal()==IDOK) return;rnrn sy1 dlg;rn if(dlg.DoModal()==IDOK) return;rn sy1,sy2分别为2个窗口,rn 在返回的时候 为什么第一个总是返回父窗口,而第二个总是直接退出,这个问题困扰我好多天了,一直无法解决,2个窗口里的都是一样的,我把2个窗口都屏蔽(里面不做任何事)退出还是一样,第一个返回,第二个退出。问下该怎么解决啊,请教高手了 ~rn 真的很急 ,谢谢指教下
关于MFC子窗口资源释放的问题
大家好!rn 我在主窗体中需要调用子窗体的一个listcontrol控件的内容,这个事件是在子窗体的确定按钮(IDOK)被按下之后触发的。现在遇到个问题,在主窗体中调用GetItemText函数时出错,错误的地方是 ASSERT(::IsWindow(m_hWnd)); 语句,其中m_hWnd=0x00000000 ,也就是未用的窗体。rn代码:rn[code=C/C++]if (Dialog_ScanChain1.DoModal() == IDOK)rn rn //保存数据至文件rn CFile file;rn CString str;rn int item;rn CString strFileName = "E:\\workspace\\ScanChainCFG.txt";rnrn file.Open(strFileName,CFile::modeCreate|CFile::modeReadWrite);rn rn for (item=0;item
关于MFC MDI 子窗口的创建
小弟对 MFC 接触不多,最近公司要求要设计一个包含多个子窗口的 UI。rnrn一开始我参考了MFC自己生成的代码,但研究了半天也不知道如何将空白文件成我想要的样子(因为我只会拉控件)rnrn[code=c]void CTESTApp::OnFileNew() rnrn CMainFrame* pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);rn pFrame->CreateNewChild(RUNTIME_CLASS(CChildFrame), IDR_CTI_UITYPE, m_hMDIMenu, m_hMDIAccel);rn[/code]rnrnrn后来我新增了一个 Dialog 资源,并将 style 改为 child,再新增一个类别 CA123Dlg,最后在以下方函式呼叫它。rnrn[code=c]void CTESTApp::OnA123()rnrn static CA123Dlg m_A123;rn m_A1.Create( IDD_A123, AfxGetApp()->m_pMainWnd);rn CRect rc;rn rc.left = 10;rn rc.top = 10;rn rc.bottom = 335;rn rc.right = 510;rn m_A123.MoveWindow( rc );rn m_A123.ShowWindow( SW_SHOW );rn[/code]rnrn但执行的结果,子视窗的标题栏变得无法拖动,有没有什么解决方案?
MFC的窗口基类CWnd
微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类!
mfc基于CWnd的自绘控件
基于MFC的控件自绘,从CWnd继承,当前工程是自绘成箭头形状
【MFC的BUG】CWnd::CreateControl
首先我的项目是基于Windows Mobile环境,用VS2008开发,MFC是静态连接的。rn现在我需要在我的项目中使用IWebBrowser2接口。rn1,通过VS2008向导添加一个对IWebBrowser2包装类CWebBrowser2。rn2,在对话框的OnCreate响应函数中添加如下代码:rnCWebBrowser2 wb2;rnBOOL bOk=wb2.Create(NULL,WS_VISIBLE|WS_BORDER,CRect(0,0,100,100),this,100);rn//Create内部是调用的CreateControlrnrn结果bOk为TRUE,在调试器中有如下输出:rn加载模块: browser.dllrn加载模块: browsres.dll.0804.MUIrn加载模块: browsres.dllrn加载模块: browsres.96.dllrnPersistence not supported on OLE control F5AFC7EF-1571-48B6-A69C-F1833F4C3A44.rn>>> Result code: 0x00000000rn加载模块: WEBVIEW.DLLrn加载模块: URLMON.DLL.0804.MUIrn加载模块: SHLWAPI.dllrn加载模块: WININET.dllrn加载模块: URLMON.DLLrn加载模块: chsime03.dllrnWarning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).rnRaiseException: Thread=96798400 Proc=80096d60 'TempTest.exe'rnAKY=00001001 PC=03f91e7c(coredll.dll+0x00043e7c) RA=88037538(NK.EXE+0x00007538) BVA=00000000 FSR=00000000rn加载模块: TshRes.dllrn加载模块: ShUtil.dllrnrnrn以上同样代码拿到PC环境就没问题。请问是不是MFC的BUG?rnrnrn如果是BUG如何解决呀?我的项目是MFC的项目。
MFC源码追踪之CWnd
微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类!
子窗口如何动态创建控件CWND指针如何获取
单文档视图分割弄了很多子对话框,现在相对子对话框动态添加控件rnCWND*用的是AfxGetMainWnd(),所以控件都添到视图里了,没在子对话框上rn应该怎么操作
关于MFC中CFrameWnd,CWnd的一点疑问。。
描述rn我借助没有文档视图结构的MFC来实现简单的窗口程序HELLO WORLD。rn思路:从MFC的窗口类中派生出一个我自己的类CMainWindow,然后调用MFC系统类提供的创建窗口的函数创建窗口,然后添加消息映射机制,实现消息处理。rn在选择从哪个MFC的窗口类派生自己的窗口类时思路不是很清晰,所以2个都进行了测试。请大家耐心点看吧。rn情况一:rn.hrnrn代码:rnclass CMyApp : public CWinApprnrnpublic:rn virtual BOOL InitInstance ();rn;rnrnclass CMainWindow : public [color=#FF0000]CFrameWnd[/color]//直接从CFrameWnd类派生rnpublic:rn CMainWindow ();rnrnprotected:rn afx_msg void OnPaint ();rn DECLARE_MESSAGE_MAP ()rn;rnHello.cpprnrn代码:rnBEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)rn ON_WM_PAINT ()rnEND_MESSAGE_MAP ()rnrnCMainWindow::CMainWindow ():m_ptCaretPos(0,0)rnrn Create (NULL, _T ("The Hello Application"));//创建窗口,指定窗口类名为NULLrnrn情况二:rn.hrnrn代码:rnclass CMainWindow : public [color=#FF0000]CWnd[/color]//从CWnd派生,请考虑如何创建窗口?rn.cpprnrn代码:rnCMainWindow::CMainWindow ()rnrn。。。。。rnCreateEx (0, [color=#FF0000]NULL[/color], _T ("Hello World"),rn WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,rn CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,rn NULL, NULL);//请注意第二个参数(NULL)rn情况一没任何问题,情况二运行出错,查了MSDN说rnCWnd::CreateEx的第二个参数不能为NULL.rn跟踪结果分析:rn情况一之所以能够成功,在于Create函数的第一个参数为NULL,表示使用系统帮忙注册的窗口类去创建窗口,系统是啥时候帮我们注册的窗口类,是这样的,Create会调用基类CWnd::CreateEx,它又继续调用PreCreateWindow函数(注意虚函数),就是在这里进行的注册窗口类AfxDeferRegisterClass。注册的窗口类叫啥名字呢?经过调试是叫“AfxFrameOrView42d”的窗口类名。继续跟踪MFC发现此时执行的是下面的代码:rnrn代码:rn if (fToRegister & AFX_WNDFRAMEORVIEW_REG)rn rn // SDI Frame or MDI Child windows or views - normal colorsrn wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;rn wndcls.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);rn if (_AfxRegisterWithIcon(&wndcls, _afxWndFrameOrView, AFX_IDI_STD_FRAME))rn fRegisteredClasses |= AFX_WNDFRAMEORVIEW_REG;rn rn不晓得AFX_WNDFRAMEORVIEW_REG是啥意思,这段代码的含义其实不是很懂。请懂的童鞋帮忙解释一下,感激涕零。。rn情况二:rn执行顺序CWnd::CreateEx----CWnd::PreCreateWindow--------这里有必要贴下代码rnrn代码:rn// for child windowsrnBOOL CWnd::PreCreateWindow(CREATESTRUCT& cs)rnrn if (cs.lpszClass == NULL)rn rn // make sure the default window class is registeredrn VERIFY(AfxDeferRegisterClass(AFX_WND_REG));rnrn // no WNDCLASS provided - use child window defaultrn ASSERT(cs.style & WS_CHILD);rn cs.lpszClass = _afxWnd;rn rn return TRUE;rnrn继续执行到达 AfxEndDeferRegisterClass,也就是进入了注册窗口类的函数当中,发现执行的是下面的代码:rnrn代码:rn // work to register classes as specified by fToRegister, populate fRegisteredClasses as we gorn if (fToRegister & AFX_WND_REG)rn rn // Child windows - no brush, no icon, safest default class stylesrn wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;rn wndcls.lpszClassName = _afxWnd;rn if (AfxRegisterClass(&wndcls))rn fRegisteredClasses |= AFX_WND_REG;rn rn情况一出现的是[color=#FF0000]AFX_WNDFRAMEORVIEW_REG[/color],情况二则是[color=#FF0000]AFX_WND_REG[/color].请问大家这两个是啥东西呢。网上也没找到相对应的说明。rnOK,继续执行这个函数到if (AfxRegisterClass(&wndcls)),rn然后跳转到:rnrn代码:rn// for child windowsrnBOOL CWnd::PreCreateWindow(CREATESTRUCT& cs)rnrn if (cs.lpszClass == NULL)rn rn // make sure the default window class is registeredrn VERIFY(AfxDeferRegisterClass(AFX_WND_REG));rnrn // no WNDCLASS provided - use child window defaultrn ASSERT(cs.style & WS_CHILD);rn cs.lpszClass = _afxWnd;rn rn return TRUE;rnrn到这里ASSERT(cs.style & WS_CHILD);此断言错误导致崩溃不能继续。断言需要WS_CHILD,但是没有出现,所以失败,然后进入断言失败的函数中。。。。。。rn到了这里,我再次把WS_CHILD添加到了窗口风格中进行测试:rnrn代码:rn CreateEx (0, NULL, _T ("Tic-Tac-Toe"),rn WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX|[color=#FF0000]WS_CHILD[/color],rn CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,rn NULL, NULL);rn然后ASSERT(cs.style & WS_CHILD);这里没问题了,继续跟踪到这里再次崩溃rnrn代码:rnDWORD CWnd::GetExStyle() constrnrn ASSERT(::IsWindow(m_hWnd));//这里的断言导致崩溃rnrn if (m_pCtrlSite == NULL)rn return (DWORD)GetWindowLong(m_hWnd, GWL_EXSTYLE);rn elsern return m_pCtrlSite->GetExStyle();rnrn所以我认为是创建窗口失败,因为必定是hWnd=::CreateWindowEx(API)创建的,然后m_hWnd=hWnd;进行赋值的吧。rn疑问一:到底是哪里出错了呢?为什么hWnd为空呢?为啥传递NULL就运行出错不能创建窗口呢?系统不是默认也帮我们注册了叫 AFX_WND_REG的窗口类吗?(我不确实我的叫法是否对)rn疑问二:大家告诉我m_hWnd=hWnd;到底是在什么时候赋值的呢?我该如何去跟踪呢?我的想法是在Detach的时候,但是在那里打了断点,压根就没到达啊,请问这里是啥情况?rnrn谢谢大家,对MFC的流程非常感兴趣,也跟踪了好久,遇到比较简单的问题也都解决了很多,但是唯独到了这里就进行不下去了,请大家帮忙。非常感谢!
MFC怎样在子窗口获取父类变量?
在父类中定义了一个变量 com,子类模式对话框,里面有一个tab控件,tab控件上的一页上有个button,我想单机button,调用父类的com。使用GetParent(),有问题,没有获取到com的状态,获取的代码如下:rnCSetZeroDlg *parent = (CSetZeroDlg *)GetParent();rnCCalibrationDlg *pparent = (CCalibrationDlg *)parent->GetParent();rnrn请问怎么解决
关于MFC中CWnd::CreateEx的一点疑惑
以下是从MFC中复制的代码.rnBOOL CWnd::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName,rn LPCTSTR lpszWindowName, DWORD dwStyle,rn int x, int y, int nWidth, int nHeight,rn HWND hWndParent, HMENU nIDorHMenu, LPVOID lpParam)rnrn // allow modification of several common create parametersrn CREATESTRUCT cs;rn cs.dwExStyle = dwExStyle;rn cs.lpszClass = lpszClassName;rn cs.lpszName = lpszWindowName;rn cs.style = dwStyle;rn cs.x = x;rn cs.y = y;rn cs.cx = nWidth;rn cs.cy = nHeight;rn cs.hwndParent = hWndParent;rn cs.hMenu = nIDorHMenu;rn cs.hInstance = AfxGetInstanceHandle();rn cs.lpCreateParams = lpParam;rnrn if (!PreCreateWindow(cs))rn rn PostNcDestroy();rn return FALSE;rn rnrn AfxHookWindowCreate(this);rn HWND hWnd = ::CreateWindowEx(cs.dwExStyle, cs.lpszClass,rn cs.lpszName, cs.style, cs.x, cs.y, cs.cx, cs.cy,rn cs.hwndParent, cs.hMenu, cs.hInstance, cs.lpCreateParams);rnrn#ifdef _DEBUGrn if (hWnd == NULL)rn rn TRACE1("Warning: Window creation failed: GetLastError returns 0x%8.8X\n",rn GetLastError());rn rn#endifrnrn if (!AfxUnhookWindowCreate())rn PostNcDestroy(); // cleanup if CreateWindowEx fails too soonrnrn if (hWnd == NULL)rn return FALSE;rn ASSERT(hWnd == m_hWnd); // should have been set in send msg hookrn return TRUE;rnrnrn上面函数的最后:ASSERT(hWnd == m_hWnd); // should have been set in send msg hookrn问题:他说m_hWnd被赋值,在发送hook消息的时候. 但是阅读上面代码 ,在创建窗口之后根本没有发送这个消息,唯一可能的地方就是"if (!AfxUnhookWindowCreate())",但是我查看了AfxUnhookWindowCreate()函数,也没有发送过什么消息啊.请高手指点......
关于CWnd
在ctrl中,CWnd *topWnd = this就可以了;rn怎么在别的界面中得到ctrl中CWNDrn
###获取窗口CWnd, LPRECT 的方法。关于Attach,
我要获得当前窗口的LPRECTrnrn这里好像有两个方法:rnrn1.直接获得当前窗口的:rnCWnd *pWnd;rnpWnd = GetWindow(GW_HWNDFIRST);rnpWnd->GetClientRect(area);rn// 还是用GetWindowRect ?rn//无论哪个,都出错rnrnrn2.按ButtonUP,获得CPoint, 然后再传递 HWND hrcWnd给另一个函数。rnrn*.h里面:rn HWND hrcWnd;rnrn::OnRButtonUp( .. CPoint point )rnrn::GetCursorPos(&point); //获取当前鼠标位置rnCWnd *srcWnd=WindowFromPoint(point ); //返回鼠标所在窗口的指针rnhrcWnd=srcWnd->m_hWnd; rnrn::OnFoo()rnCRect range;rnCWnd srcWnd; rnsrcWnd.Attach(hrcWnd);//截取图像的窗口句柄hrcWnd 转换成CWnd对象rn//Attach这里出错。rnsrcWnd.GetWindowRect(&range);rn...rnrnrnrn*** 两个方法都应该是可以的,但是应该怎样做呢?****rn             谢谢!!rnrn
使用CWnd动态创建子窗口不刷新问题
在视图类的左键消息中,动态创建窗口,样式改为子窗口时窗口就不刷新了,如何处理让子窗口能够刷新呢?rnCWnd * wnd = new CWnd;rn创建浮动窗口:rnrnwnd->CreateEx(NULL,AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW , NULL,rn (HBRUSH) ::GetStockObject(WHITE_BRUSH),NULL), //if pass null, do not erase backgroundrn "My Window", WS_POPUP| WS_VISIBLE |WS_OVERLAPPEDWINDOW, CRect(100,100,500,500),this, 0);rn创建子窗口:rnwnd->CreateEx(NULL,AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW , NULL,rn (HBRUSH) ::GetStockObject(WHITE_BRUSH),NULL), //if pass null, do not erase backgroundrn "My Window", WS_CHILD| WS_VISIBLE, CRect(100,100,500,500),this, 0);rnrn创建浮动窗口,能够自行刷新:rn[img=https://img-bbs.csdn.net/upload/201405/28/1401271121_213333.jpg][/img]rn子窗口不刷新:rn[img=https://img-bbs.csdn.net/upload/201405/28/1401271164_299654.jpg][/img]
关于子窗口(CWnd)的非客户区重绘问题,请进!
有没有重绘非客户区的函数或消息?
求MFC 的 CWnd::IsWindowVisiable();用法
MFC 的 CWnd::IsWindowVisiable();用法:rnrn我在Tab中插入一对话框XDlg,再在此XDlg中放一button,xBtn。rnrn当我切换到另外的页面再回来的时候,我能看到此按钮,可在OnShowWindow(...)中使用XDlg.IsWindowVisiable();发现结果rnrn是FALSE。当然按钮也是FALSE。rnrn我都能看到这个对话枉与按钮,为什么报的值是FALSE????rnrn我想可能这个函数使用是不是有什么规则是我不知道的。有大X知道的请告诉我一下。多谢。
mfc关闭程序所有子窗口
我编写了一个基于对话框的VC程序,这个程序在满足一个特定条件时会自动关闭,我在Timer事件里定时检查这一条件是否满足,当满足条件时关闭主窗口(调用OnCancel();)。现在的问题是用这种方法主窗口能够关闭,但是主窗口打开的子窗口却无法关闭。如何在主窗口被关闭时找到它的所有子窗口并关闭他们呢?
mfc 子窗口问题求助
[code=C/C++]rnCWnd *ChildHwnd = new CWnd();rnChildHwnd->Create( NULL, NULL,WS_CHILD | WS_VISIBLE | WS_VSCROLL, CRect(0,100,800,300), this,NULL);rn[/code]rn我创建了子窗口,能够显示但是不知道如何获取子窗口的消息,主要是不知道如何使用如何使用滚动条
MFC子窗口同时显示
大家好我是小白rn先说一下我的环境:rnWindows7rnvs2013rn我想设置一个数据库VC++(MFC)程序,程序的外观如下rn[img=https://img-bbs.csdn.net/upload/201408/11/1407713354_131341.png][/img]rn一些要求是:rn三个子窗口同时显示,相互平等的rn三个窗口相邻之间是“粘着”的,即在两个窗口的边界拖动时,肯定使一个变大同时另个相应变小rn我的问题是rn这个程序应该是单文档还是多文档rn每个兄弟窗口是否就是一个Dialog资源rn我只道我很小白,我主要想通过这个帖子获取这个vc程序的思路[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/29.gif][/img],细节的地方因该由我慢慢探索,请大神们不吝指教。我我现在只看过孙鑫的《VC++深入浅出》水平一般rnrnrn
wince MFC子窗口问题
我的主窗口是一个向导生成的CDialog类型窗口,现在我新建了一个CWnd类型的窗口,建立时的参数指定是WS_CHILD|WS_VISBLE,服窗口指定是那个CDialog窗口。然后我程序运行的时候这个子窗口显示是一个透明的方框,能看到整个窗口背后的桌面,然后拖动主窗口的时候,子窗口会一起移动,但是子窗口里面显示的内容不会变化,不知道是什么情况。rnrn因为我不方便贴图,描述的可能有点不清楚,有什么地方不明白说下,麻烦各位解决下,MFC刚学,实在是有点晕
MFC子窗口异形
MFC除了层级窗口能实现异形外,子窗口照样可以!
mfc显示子窗口的问题
我有一个主对话框,想在上面创建几个子对话框。rn于是我添加了一个FormView类型的对话框,类型为Child,并且为它生成了一个类CFormView1.rn在主对话框类中声明CFormView1 m_dlg。rn在主对话框初始化函数中添加代码:rnCRect rect;rnGetWindowRect(&rect);rn::MoveWindow(m_dlg.m_hWnd, rect.left-20, rect.top-20, (rect.right-rect.left)-40, (rect.bottom-rect.top)-40, TRUE);rnBOOL bVisible = ::ShowWindow(m_dlg.m_hWnd, SW_SHOW);rnrn跟了一下bVisible是false, 子对话框没有显示出来, 欢迎各位来指正一下, 谢谢!
mfc子窗口创建问题
我创建了一个窗口,然后在该窗口创建一个按钮,点击该按钮会弹出一个对话框,这个对话框关联了自己创建的一个类CDlgEnlarge,该类的基类为CDialog,在按钮响应函数里面的代码是rnvoid CRemoteDlg::OnBtnenlarge() rnrn // TODO: Add your control notification handler code herern CDlgEnlarge enlargeDlg;rn enlargeDlg.DoModa();rnrn调试时发现执行CDlgEnlarge enlargeDlg;后,得到CDlgEnlarge hwnd=0x00000000;rn不知道哪儿的错,求各位大神帮忙解决一下
MFC 子窗口显示
前两天还好着,今天就出现了问题。添加PIC控件,然后在上面显示子窗口,[code=c]CRect rect; rn rn GetDlgItem(IDC_PIC1)->GetWindowRect(&rect);//获取PIC1的位置rn ScreenToClient(&rect);rnrn m_InnerDlg1.Create(IDD_DIALOG19, this); // 创建非模态对话框,父级是自己rn m_InnerDlg2.Create(IDD_DIALOG20, this); // 创建非模态对话框,父级是自己rnrn rn m_InnerDlg1.MoveWindow(&rect); // 移动到rn m_InnerDlg2.MoveWindow(&rect); // 移动到[/code]rn出现问题[img=https://img-bbs.csdn.net/upload/201704/21/1492754839_408732.png][/img]rn 把[code=c] m_InnerDlg1.MoveWindow(&rect); // 移动到rn m_InnerDlg2.MoveWindow(&rect); // 移动到 [/code]rn改成[code=c] // ::MoveWindow(m_InnerDlg1.m_hWnd,33,108,660,466,1); rn // ::MoveWindow(m_InnerDlg2.m_hWnd,33,107,660,466,1);[/code]rn就没有错误 但是子窗口显示不出来,啥也没有
mfc mdi子窗口问题
前端时间不知道修改了什么,导致0xC0000005错误,最后通过断点发现,是在主窗口WM_SIZE调用“子窗口指针->GetClientRect(rect)抛出的错误,其中发现,此时的子窗口尚未创建,这大概是什么问题导致的?
MFC 关闭子窗口
[code=C/C++]rn CMainFrame *pFrame = (CMainFrame*) AfxGetMainWnd();rnrn CMDIChildWnd* pMDIActive = pFrame->MDIGetActive();rn ASSERT(pMDIActive != NULL); rn CDocument* pDoc = pMDIActive->GetActiveDocument(); rn ASSERT(pDoc != NULL); rn POSITION pos = pDoc->GetFirstViewPosition(); rn while (pos != NULL) rn rn CView* pView = pDoc->GetNextView(pos); rn pView->GetParentFrame()->SendMessage(WM_CLOSE); rn rnrn[/code]rnrnrn我想关闭打开的所有子窗口。但是这样的代码一次只能关闭一个子窗口。rn请问怎么修改可以一次关闭所有的子窗口呢。rnrn这代代码放在App::OpenDocumentFile
MFC如何动态创建子窗口?
我创建了一个多文档程序,现在要做到点击左侧导航栏的一个按钮就在右边的主窗口中创建一个子窗口,代码要怎么写啊?[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img]
mfc 实现子窗口拖动
mfc实现子窗口跟随鼠标随意移动
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池