由于用手机看电视造成视力下降怎么恢复有办法调节吗

问题: MFC对于单文档多视图的工程,有4个视图窗口,如何隐藏/显示其中某个视图
MFC单文档多视图的工程,有5个视图窗口,在菜单栏中分别有5个操作,来控制5个视图窗口的隐藏或者显示!隐藏时,其他的窗口大小自动调整。
我现在使用ShowWindow(SW_HIDE)隐藏对应的视图,可是效果很差,使用MoveWindow移动其他的视图补到隐藏视图的位置上!可能是思路不正确,请教有没有好的思路!解决方案1:
这个是CSplitterWnd做出来的效果么?
如果是,可以使用CSplitterWnd::SetColumnInfo和CSplitterWnd::SetColumnInfo来设置,将特定的区域占满窗口
解决方案2:
"我的视图中有数据"
doc&是放数据的,view&是看数据的!
解决方案3:
"YaChangeSplit.zip"
http://download.csdn.net/detail/schlafenhamster/3463284
"另一个(Yet&another)窗口动态分割的演示程序。&只有一个CSplitterWnd&m_wndS实例不嵌套&使用CreateStatic动态改变窗口分割数0,2,4,&6&使用CEditView"解决方案4:
m_pMainView-&SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
m_pMainView-&ShowWindow(SW_SHOW);
////////////////////////////////////////////////
m_pMainView-&SetDlgCtrlID(AFX_IDW_PANE_FIRST+1);
m_pMainView-&ShowWindow(SW_HIDE);解决方案5:
修改view的&ID
AFX_IDW_PANE_FIRST&是当前显示的
AFX_IDW_PANE_FIRST+1,。。。。&是不显示的
以上介绍了“ MFC对于单文档多视图的工程,有4个视图窗口,如何隐藏/显示其中某个视图”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:/itwd/2192497.html
上一篇: 下一篇:quechaobinhongcha的答复:
点命令菜单里的视图-视口,然后根据需要选择几个视口即可。在每个视口内可定义视图方向,&点视图-三维视图,然后选择视图种类即可。
回答:共&0&条本例将在单文档工程的视图窗口中显示一副位图,窗口的左边为原图,右边为放大后的位图。本例的demo如下:首先
在资源视图中插入一副位图,然后在Ondraw函数中实在加载位图和显示void CMFCApplication18View::OnDraw(CDC* pDC){CMFCApplication18Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)// TODO:
在此处为本机数据添加绘制代码CBCDCbitmap.LoadBitmapW(IDB_BITMAP1);dcmem.CreateCompatibleDC(pDC);dcmem.SelectObject(&bitmap);pDC-&BitBlt(0, 0, 200, 150, &dcmem, 0, 0, SRCCOPY);pDC-&TextOutW(40, 170, _T("原始位图图像"));pDC-&StretchBlt(210, 0, 300, 226, &dcmem, 0, 0, 200, 150, SRCCOPY);}要点:显示DDB位图的时候,将位图载入内存设备环境后,需要使用CDC类提供的BitBlt函数将DC中位图复制到目的DC中。BitBlt函数原型如下:BOOL BitBlt(HDC hdcDest,  int nXDest,  int nYDest,  int nWidth,  int nHeight,  HDC hdcSrc,  int nXSrc,  int nYSrc,  DWORD dwRop);Public Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As LonghDestDC:指向目标设备环境的。x:指定目标矩形区域左上角的X轴逻辑坐标。y:指定目标矩形区域左上角的Y轴逻辑坐标。nWidth:指定源在目标矩形区域的逻辑宽度。nHeight:指定源在目标矩形区域的逻辑高度。hSrcDC:指向源设备环境的句柄。xSrc:指定源矩形区域左上角的X轴逻辑坐标。ySrc:指定源矩形区域左上角的Y轴逻辑坐标。dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。下面列出了一些常见的操作代码:BLACKNESS:表示使用与物理的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。DSTINVERT:表示使目标矩形区域颜色取反。MERGECOPY:表示使用型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。MERGEPAINT:通过使用型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。NOTSRCERASE:使用类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。PATCOPY:将特定的模式拷贝到目标位图上。PATPAINT:通过使用OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。PATINVERT:通过使用XOR()操作符将源和目标矩形区域内的颜色合并。SRCAND:通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。SRCERASE:通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。SRCINVERT:通过使用型的XOR(异或)操作符将源和目标矩形区域的颜色合并。SRCPAINT:通过使用型的OR(或)操作符将源和目标矩形区域的颜色合并。WHITENESS:使用与物理中索引1有关的目标矩形区域。(对于缺省物理来说,这个颜色就是白色)。dwRop ValuesFrom wingdi.h:#define BLACKNESS 0x42#define DSTINVERT 0x550009#define MERGECOPY 0xC000CA#define MERGEPAINT 0xBB0226#define NOTSRCCOPY 0x330008#define NOTSRCERASE 0x1100A6#define PATCOPY 0xF00021#define PATINVERT 0x5A0049#define PATPAINT 0xFB0A09#define SRCAND 0x8800C6#define SRCCOPY 0xCC0020#define SRCERASE 0x440328#define SRCINVERT 0x660046#define SRCPAINT 0xEE0086#define WHITENESS 0xFF00623返回值如果函数成功,那么返回值非零;如果函数失败,则返回值为零。Windows NT:若想获取更多,请调用GetLastError函数。备注:如果在源设备环境中可以实行旋转或,那么函数BitBlt返回一个错误。如果存在其他变换(并且目标设备环境中匹配变换无效),那么目标设备环境中的矩形区域将在需要时进行拉伸、压缩或旋转。如果源和目标设备环境的颜色格式不匹配,那么BitBlt函数将源场景的颜色格式转换成能与目标格式匹配的格式。当正在记录一个增强型时,如果源设备环境标识为一个增强型图元文件设备环境,那么会出现错误。如果源和目标设备环境代表不同的设备,那么BitBlt函数返回错误。Windows CE:在Windows CE 1.0版中,参数dwRop只可以指定为下列值:SRCCOPY、SRCAND、SRCPAINT、SRCINVERT。在Windows CE 2.0版中,参数dwRop可以是任何光栅操作代码值。速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。
如果您想留下此文,您可以将其发送至您的邮箱(将同时以邮件内容&PDF形式发送)
相关文章推荐
(Ctrl+Enter提交) &&
已有0人在此发表见解
&在& 10:56收藏到了
&&在信息爆炸的时代,您的知识需要整理,沉淀,积累!Lai18为您提供一个简单实用的文章整理收藏工具,在这里您可以收藏对您有用的技术文章,自由分门别类,在整理的过程中,用心梳理自己的知识!相信,用不了多久,您收藏整理的文章将是您一生的知识宝库!
· 蜀ICP备号-11122人阅读
VC技术文章(13)
在MS Windows 中,一个窗口可以分割成若干个子窗口,每一个子窗口称作一个窗片(pane),每个窗片可以独立控制,这给界面设计提供了很大的方便。  
 利用VC 可以很方便地实现分割窗口。分割的方法有两种:动态和静态。动态分割时可以根据用户的需要分割成数目不同的窗片,但所有窗片的属性和父窗口都是一样的;而静态分割的窗片的数目在程序中指定,运行时是固定的,但每个窗片可以有各自不同类型的视(View),因此其使用范围更为广泛。本文所讨论的问题仅限于静态分割。  
 窗片中视的类型大多是在主窗口的创建过程中指定的。这也就意味着,一个窗片虽然可以显示任意类型的视,但是这种类型一旦确定,在程序运行过程中就难以改变。  
 一、我要的是这样的!   但是我们有时确实需要改变一个窗片所显示的视的类型,也就是说,需要让一个窗片显示多种类型的视。例如一个窗口被分割成两部分,一边是命令窗口,另一边是工作窗口,根据命令窗口中发出的不同命令,需要变换不同的工作类型,这就需要工作窗口中能够显示多种类型的视窗,那么,如何做到这一点呢?  
 二、你可以这样做! 下面我们来看如何在右窗片内进行两类视间的切换。实际上,由视A 切换到视B 的原理很简单,那就是:  
 1. 从窗片中删除视A;   
2. 往窗片中添加视B。  
 步骤1 的实现非常简单,仅用一条语句即可:   m_wndSplitter.DeleteView(0, 1);   但它是必不可少的,因为你不能让一个窗片同时包含两个视。我本来希望往一个窗片中添加新的视时,VC 会自动将原来的视删掉,可是它不干。
1.切分窗口
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) {
// TODO: Add your specialized code here and/or call the base class if(wndSplitter.CreateStatic(this,1,2)==NULL)return FALSE;
wndSplitter.CreateView(0,0,RUNTIME_CLASS(CView3),CSize(300,300),pContext);
wndSplitter.CreateView(0,1,RUNTIME_CLASS(CView4),CSize(100,100),pContext);
return TRUE; }
2。视图切换
void CMainFrame::SwitchToForm(CRuntimeClass *pRTClass) {
wndSplitter.DeleteView0,1); //// 创建新的视
CCreateContext C
Context.m_pNewViewClass=pRTC// // 视类
Context.m_pCurrentDoc = GetActiveDocument(); // 与文档连接
wndSplitter.CreateView(0,1, pRTClass,CSize(200,200),&Context); /*
CView * pView = (CView *)wndSplitter.GetPane(0,1); // 获取分割区域
pView-&ShowWindow(SW_SHOW);
pView-&OnInitialUpdate();
SetActiveView(pView);
wndSplitter.SetRowInfo(0, 300, 20); // 设置宽度
::SetWindowLong(pView-&m_hWnd,GWL_ID, AFX_IDW_PANE_FIRST); */ wndSplitter.RecalcLayout(); }
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:14835次
排名:千里之外
转载:15篇
(2)(1)(1)(1)(2)(12)

我要回帖

更多关于 如何用手机看电视直播 的文章

 

随机推荐