vc 单文档多视图问题

vc 单文档多视图问题,第1张

在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗口被切分后用户可以使用鼠标移动切分条来调整窗口的相对尺寸。

CSplitterWnd的构造函数主要包括下面三个。

BOOL

Create(CWnd*

pParentWnd,int

nMaxRows,int

nMaxCols,SIZE

sizeMin,CCreateContext*

pContext,DWORD

dwStyle,UINT

nID)

功能描述:该函数用来创建动态切分窗口。

参数含义:pParentWnd

切分窗口的父框架窗口。

nMaxRows,nMaxCols是创建的最大的列数和行数。

sizeMin是窗格的现实大小。

pContext

大多数情况下传给父窗口。

nID是字窗口的ID号.

BOOL

CreateStatic(CWnd*

pParentWnd,int

nRows,int

nCols,DWORD

dwStyle,UINT

nID)

功能描述:用来创建切分窗口。

参数含义同上。

BOOL

CreateView

(int

row,int

col,CruntimeClass*

pViewClass,SIZE

sizeinit,CcreateContext*

pContext)

功能描述:为静态切分的窗口的网格填充视图。在将视图于切分窗口联系在一起的时候必

须先将切分窗口创建好。

参数含义:同上。

从CSplitterWnd源程序可以看出不管是使用动态创建Create还是使用静态创建CreateStatic,在函数中都调用了一个保护函数CreateCommon,从下面的CreateCommon函数中的关键代码可以看出创建CSplitterWnd的实质是创建了一系列的MDI子窗口。

DWORD

dwCreateStyle

=

dwStyle

&

~(WS_HSCROLL|WS_VSCROLL)

if

(afxData.bWin4)

dwCreateStyle

&=

~WS_BORDER

//create

with

the

same

wnd-class

as

MDI-Frame

(no

erase

bkgnd)

if

(!CreateEx(0,

_afxWndMDIFrame,

NULL,

dwCreateStyle,

0,

0,

0,

0,pParentWnd->m_hWnd,

(HMENU)nID,

NULL))

return

FALSE

//

create

invisible

注册表关联,打开HKEY_CLASSES_ROOT,这个键值,有好多扩展名,在里面加入你的扩展名,没有就新加,可以看看别的扩展名是怎么写的,或msdn

1) HKEY_CLASS_ROOT\\.type

defvalue = 应用程序别名

2) HKEY_CLASS_ROOT\\应用程序别名\\shell\\open\\command

defvalue = 应用程序路径 [%1]

3) HKEY_CLASS_ROOT\\应用程序别名\\DefaultIcon

defvalue = 应用程序路径, %d

关联 .wpf 文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.wpf]

@="wpffile"

[HKEY_CLASSES_ROOT\.wpf\DefaultIcon]

[HKEY_CLASSES_ROOT\.wpf\shell]

[HKEY_CLASSES_ROOT\.wpf\shell\open]

[HKEY_CLASSES_ROOT\.wpf\shell\open\command]

@="\"c:\\wpftest.exe\""

[HKEY_CLASSES_ROOT\.wpf\shell\用wpf打开]

[HKEY_CLASSES_ROOT\.wpf\shell\用wpf打开\command]

@="\"c:\\wpftest.exe\""

c:\\wpftest.exe: 替换成你的程序的路径

不懂pm我


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11883632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存