·我应该怎样防止 MFC 在窗口标题栏上添加文档名?
在 PreCreateWindow 函数中删除 FWS_ADDTOTITLE 标志的窗口样式:
cs.style &= ~FWS_ADDTOTITLE;
·我应该怎样防止 MFC 在窗口标题栏上把文档名预置成应用程序名?
在 PreCreateWindow 函数中删除 FWS_PREFIXTITLE 标志的窗口样式:
cs.style &= ~FWS_PREFIXTITLE
·我应该如何改变视窗口的大小?
因为视窗口实际上是框架窗口的子窗口,所以你必须改变框架窗口的大小,而不是改变视窗口。使用 CView 类中的 GetParentFrame() 函数获得指向框架窗口的指针,然后调用 MoveWindow() 函数来改变框架的大小。这会使变尺寸的视充满框架窗口。
·我有一无模式对话框。我怎样才能在窗口退出时删除 CDialog 对象?
把“delete this”加到 PostNcDestroy 中。这主要用在需要自动删除对象的场合。
·为什么把“delete this”放在 PostNcDestroy 中而不是 OnNcDestroy?
OnNcDestroy 只被已建立的窗口调用。如果建立窗口失败(如 PreCreateWindow),则没有窗口处来发送 WM_NCDESTROY 消息。PostNcDestroy 是在对象窗口被完全删除,在 OnNcDestroy 后,甚至在窗口建立失败之后调用的。
---
·我在文档类中设置了一个整型变量。但是,当我试图把该变量写入 Serialize 函数中的 archive 文件中时,出现了类型错误。而文档中的其它变量没有问题。为什么?
archive 类只重载某些类型的 >> 和 << 操作符。“int”类型没有在其中,也许是因为 int 变量在Windows3.x 与 Windows NT/9x 有所不同的缘故吧。“long”类型得到了支持,所以你可以把 int 类型改成 long 型。参见 MFC 帮助文件中 CArchive 类。
·改变 LVIS_SELECTED 的状态颜色?
我想将 CListCtrl 项和 CTreeCtrl 项在 LVIS_SELECTED 状态时的颜色变灰。
方法一:查找函数 CustomDraw,它是 IE4 提供的公共控制,允许有你自己的代码。
方法二:生成一个 draw 控件,然后在 DrawItem 中处理文本颜色。
·如何只存储文档的某一部分?
我只想存储文档的某一部分,能否象使用文件一样使用文档?(也就是有定位函数)。
将每个 CArchive 类设置为 CFile 类的派生类,这样你就能使用 Seek 等成员函数。
·保存工具条菜单有 bug 吗?
使用浮动菜单条时,SaveBarState 和 LoadBarState 出现了问题。如果菜单是浮动的,重起应用程序时它会出现在左上角,而它固定在屏幕其它位置时,下一次启动就会出现在该位置,这是什么原因?
你试试这个:
PToolBar->Create(this,...,ID_MYTOOLBAR);
你的工具条需要包括 id,而不是象默认的工具条那样。
---
·我应该怎样防止 MFC 在窗口标题栏上添加文档名?
在 PreCreateWindow 函数中删除 FWS_ADDTOTITLE 标志的窗口样式:
cs.style &= ~FWS_ADDTOTITLE;
·我应该怎样防止 MFC 在窗口标题栏上把文档名预置成应用程序名?
在 PreCreateWindow 函数中删除 FWS_PREFIXTITLE 标志的窗口样式:
cs.style &= ~FWS_PREFIXTITLE
·我应该如何改变视窗口的大小?
因为视窗口实际上是框架窗口的子窗口,所以你必须改变框架窗口的大小,而不是改变视窗口。使用 CView 类中的 GetParentFrame() 函数获得指向框架窗口的指针,然后调用 MoveWindow() 函数来改变框架的大小。这会使变尺寸的视充满框架窗口。
·我有一无模式对话框。我怎样才能在窗口退出时删除 CDialog 对象?
把“delete this”加到 PostNcDestroy 中。这主要用在需要自动删除对象的场合。
·为什么把“delete this”放在 PostNcDestroy 中而不是 OnNcDestroy?
OnNcDestroy 只被已建立的窗口调用。如果建立窗口失败(如 PreCreateWindow),则没有窗口处来发送 WM_NCDESTROY 消息。PostNcDestroy 是在对象窗口被完全删除,在 OnNcDestroy 后,甚至在窗口建立失败之后调用的。
---
·File 菜单中的 MRU 列表是从哪儿来的?列表中的名字放在哪儿了?我怎样才能改变列表中项目的最大值?
在应用程序类的 InitInstance 函数中对 LoadStdProfileSettings 的调用中。该调用接受一个参数(在缺省情况下如果没有传递值则为4)。MRU 文件名是从 INI 文件中调用的。如果你有带有 ID_FILE_MRU_FILE1 的 ID 的菜单选项,它会为调入的 MRU 列表所替换。如果你改变传递给 LoadStdProfileSettings 的数值(最大为 16),则你就改变了所装如文件名的最大值。
·我在菜单中添加了新的项。但是,当我选该项时,在状态栏上没有出现任何提示信息。为什么?
打开资源文件中的菜单模板。打开新菜单选项的属性对话框。在对话框的底部的 Prompt 编辑框中,你可以如下指定状态栏上的提示信息和工具栏上的提示信息(如果你已经建立的工具栏按钮):
Status bar string Flying tag
·我怎样才能在应用程序的缺省系统菜单中加上一些东西?
系统菜单与其它菜单类似,你可以添加或删除项目,这需要使用 CMenu 类的成员函数。下面的代码在你的系统菜单后面添加一个新菜单项:
CMenu *sysmenu;
sysmenu = m_pMainWnd->GetSystemMenu(FALSE);
sysmenu->AppendMenu(MF_STRING, 1000, "xxx");
参见 MFC 帮助文件中的 CMenu 类。
·我怎样才能使一个窗口具有“always on top”特性?
在调用 OnFileNew 后,在你的 InitInstance 函数中加上下面的代码:
m_pMainWnd->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE/SWP_NOSIZE);
·我建立了一个对话框。但是当我显示该对话框时,第一个编辑框总是不能获得焦点,我必须单击它来使它获得焦点。我怎样才能使第一个编辑框在对话框打开时就获得焦点?
打开资源编辑器中的对话框模板。在 Layout 菜单中选择 Tab Order 选项。按你的需求单击对话框中的控制来重新排列这些控制的 tab 顺序。
---
·我在文档类中设置了一个整型变量。但是,当我试图把该变量写入 Serialize 函数中的 archive 文件中时,出现了类型错误。而文档中的其它变量没有问题。为什么?
archive 类只重载某些类型的 >> 和 << 操作符。“int”类型没有在其中,也许是因为 int 变量在Windows 3.x 与 Windows NT/9x 有所不同的缘故吧。“long”类型得到了支持,所以你可以把 int 类型改成 long 型。参见 MFC 帮助文件中 CArchive 类。
·改变 LVIS_SELECTED 的状态颜色?
我想将 CListCtrl 项和 CTreeCtrl 项在 LVIS_SELECTED 状态时的颜色变灰。
方法一:查找函数 CustomDraw,它是 IE4 提供的公共控制,允许有你自己的代码。
方法二:生成一个 draw 控件,然后在 DrawItem 中处理文本颜色。
·如何只存储文档的某一部分?
我只想存储文档的某一部分,能否象使用文件一样使用文档?(也就是有定位函数)。
将每个 CArchive 类设置为 CFile 类的派生类,这样你就能使用 Seek 等成员函数。
·保存工具条菜单有 bug 吗?
使用浮动菜单条时,SaveBarState 和 LoadBarState 出现了问题。如果菜单是浮动的,重起应用程序时它会出现在左上角,而它固定在屏幕其它位置时,下一次启动就会出现在该位置,这是什么原因?
你试试这个:
PToolBar->Create(this,...,ID_MYTOOLBAR);
你的工具条需要包括 id,而不是象默认的工具条那样。
在 PreCreateWindow 函数中删除 FWS_ADDTOTITLE 标志的窗口样式:
cs.style &= ~FWS_ADDTOTITLE;
·我应该怎样防止 MFC 在窗口标题栏上把文档名预置成应用程序名?
在 PreCreateWindow 函数中删除 FWS_PREFIXTITLE 标志的窗口样式:
cs.style &= ~FWS_PREFIXTITLE
·我应该如何改变视窗口的大小?
因为视窗口实际上是框架窗口的子窗口,所以你必须改变框架窗口的大小,而不是改变视窗口。使用 CView 类中的 GetParentFrame() 函数获得指向框架窗口的指针,然后调用 MoveWindow() 函数来改变框架的大小。这会使变尺寸的视充满框架窗口。
·我有一无模式对话框。我怎样才能在窗口退出时删除 CDialog 对象?
把“delete this”加到 PostNcDestroy 中。这主要用在需要自动删除对象的场合。
·为什么把“delete this”放在 PostNcDestroy 中而不是 OnNcDestroy?
OnNcDestroy 只被已建立的窗口调用。如果建立窗口失败(如 PreCreateWindow),则没有窗口处来发送 WM_NCDESTROY 消息。PostNcDestroy 是在对象窗口被完全删除,在 OnNcDestroy 后,甚至在窗口建立失败之后调用的。
---
·我在文档类中设置了一个整型变量。但是,当我试图把该变量写入 Serialize 函数中的 archive 文件中时,出现了类型错误。而文档中的其它变量没有问题。为什么?
archive 类只重载某些类型的 >> 和 << 操作符。“int”类型没有在其中,也许是因为 int 变量在Windows3.x 与 Windows NT/9x 有所不同的缘故吧。“long”类型得到了支持,所以你可以把 int 类型改成 long 型。参见 MFC 帮助文件中 CArchive 类。
·改变 LVIS_SELECTED 的状态颜色?
我想将 CListCtrl 项和 CTreeCtrl 项在 LVIS_SELECTED 状态时的颜色变灰。
方法一:查找函数 CustomDraw,它是 IE4 提供的公共控制,允许有你自己的代码。
方法二:生成一个 draw 控件,然后在 DrawItem 中处理文本颜色。
·如何只存储文档的某一部分?
我只想存储文档的某一部分,能否象使用文件一样使用文档?(也就是有定位函数)。
将每个 CArchive 类设置为 CFile 类的派生类,这样你就能使用 Seek 等成员函数。
·保存工具条菜单有 bug 吗?
使用浮动菜单条时,SaveBarState 和 LoadBarState 出现了问题。如果菜单是浮动的,重起应用程序时它会出现在左上角,而它固定在屏幕其它位置时,下一次启动就会出现在该位置,这是什么原因?
你试试这个:
PToolBar->Create(this,...,ID_MYTOOLBAR);
你的工具条需要包括 id,而不是象默认的工具条那样。
---
·我应该怎样防止 MFC 在窗口标题栏上添加文档名?
在 PreCreateWindow 函数中删除 FWS_ADDTOTITLE 标志的窗口样式:
cs.style &= ~FWS_ADDTOTITLE;
·我应该怎样防止 MFC 在窗口标题栏上把文档名预置成应用程序名?
在 PreCreateWindow 函数中删除 FWS_PREFIXTITLE 标志的窗口样式:
cs.style &= ~FWS_PREFIXTITLE
·我应该如何改变视窗口的大小?
因为视窗口实际上是框架窗口的子窗口,所以你必须改变框架窗口的大小,而不是改变视窗口。使用 CView 类中的 GetParentFrame() 函数获得指向框架窗口的指针,然后调用 MoveWindow() 函数来改变框架的大小。这会使变尺寸的视充满框架窗口。
·我有一无模式对话框。我怎样才能在窗口退出时删除 CDialog 对象?
把“delete this”加到 PostNcDestroy 中。这主要用在需要自动删除对象的场合。
·为什么把“delete this”放在 PostNcDestroy 中而不是 OnNcDestroy?
OnNcDestroy 只被已建立的窗口调用。如果建立窗口失败(如 PreCreateWindow),则没有窗口处来发送 WM_NCDESTROY 消息。PostNcDestroy 是在对象窗口被完全删除,在 OnNcDestroy 后,甚至在窗口建立失败之后调用的。
---
·File 菜单中的 MRU 列表是从哪儿来的?列表中的名字放在哪儿了?我怎样才能改变列表中项目的最大值?
在应用程序类的 InitInstance 函数中对 LoadStdProfileSettings 的调用中。该调用接受一个参数(在缺省情况下如果没有传递值则为4)。MRU 文件名是从 INI 文件中调用的。如果你有带有 ID_FILE_MRU_FILE1 的 ID 的菜单选项,它会为调入的 MRU 列表所替换。如果你改变传递给 LoadStdProfileSettings 的数值(最大为 16),则你就改变了所装如文件名的最大值。
·我在菜单中添加了新的项。但是,当我选该项时,在状态栏上没有出现任何提示信息。为什么?
打开资源文件中的菜单模板。打开新菜单选项的属性对话框。在对话框的底部的 Prompt 编辑框中,你可以如下指定状态栏上的提示信息和工具栏上的提示信息(如果你已经建立的工具栏按钮):
Status bar string Flying tag
·我怎样才能在应用程序的缺省系统菜单中加上一些东西?
系统菜单与其它菜单类似,你可以添加或删除项目,这需要使用 CMenu 类的成员函数。下面的代码在你的系统菜单后面添加一个新菜单项:
CMenu *sysmenu;
sysmenu = m_pMainWnd->GetSystemMenu(FALSE);
sysmenu->AppendMenu(MF_STRING, 1000, "xxx");
参见 MFC 帮助文件中的 CMenu 类。
·我怎样才能使一个窗口具有“always on top”特性?
在调用 OnFileNew 后,在你的 InitInstance 函数中加上下面的代码:
m_pMainWnd->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE/SWP_NOSIZE);
·我建立了一个对话框。但是当我显示该对话框时,第一个编辑框总是不能获得焦点,我必须单击它来使它获得焦点。我怎样才能使第一个编辑框在对话框打开时就获得焦点?
打开资源编辑器中的对话框模板。在 Layout 菜单中选择 Tab Order 选项。按你的需求单击对话框中的控制来重新排列这些控制的 tab 顺序。
---
·我在文档类中设置了一个整型变量。但是,当我试图把该变量写入 Serialize 函数中的 archive 文件中时,出现了类型错误。而文档中的其它变量没有问题。为什么?
archive 类只重载某些类型的 >> 和 << 操作符。“int”类型没有在其中,也许是因为 int 变量在Windows 3.x 与 Windows NT/9x 有所不同的缘故吧。“long”类型得到了支持,所以你可以把 int 类型改成 long 型。参见 MFC 帮助文件中 CArchive 类。
·改变 LVIS_SELECTED 的状态颜色?
我想将 CListCtrl 项和 CTreeCtrl 项在 LVIS_SELECTED 状态时的颜色变灰。
方法一:查找函数 CustomDraw,它是 IE4 提供的公共控制,允许有你自己的代码。
方法二:生成一个 draw 控件,然后在 DrawItem 中处理文本颜色。
·如何只存储文档的某一部分?
我只想存储文档的某一部分,能否象使用文件一样使用文档?(也就是有定位函数)。
将每个 CArchive 类设置为 CFile 类的派生类,这样你就能使用 Seek 等成员函数。
·保存工具条菜单有 bug 吗?
使用浮动菜单条时,SaveBarState 和 LoadBarState 出现了问题。如果菜单是浮动的,重起应用程序时它会出现在左上角,而它固定在屏幕其它位置时,下一次启动就会出现在该位置,这是什么原因?
你试试这个:
PToolBar->Create(this,...,ID_MYTOOLBAR);
你的工具条需要包括 id,而不是象默认的工具条那样。