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,这个键值,有好多扩展名,在里面加入你的扩展名,没有就新加,可以看看别的扩展名是怎么写的,或msdn1) 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我
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)