MFC对话框程序无法运行

MFC对话框程序无法运行,第1张

你得在这个按钮的函数里处理输入的内容。用

CLASS

WIZARD

,找到

那个那个按钮的名,选

添加

单击或是双击

功能函数,在函数了编写处理程序,你新建的对话框,确定和取消按钮啥也不管的话,就是关闭对话框,别的什么也不管。

楼上说得太好了。就是在CxxxDlgcpp中的OnInitDialog()函数里出现了那句话:

BOOL CxxxDlg::OnInitDialog()

{

CDialogEx::OnInitDialog();

// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动

// 执行此 *** 作

SetIcon(m_hIcon, TRUE); // 设置大图标

SetIcon(m_hIcon, FALSE); // 设置小图标

ShowWindow(SW_MINIMIZE); // 把这句话注释掉就好了

// TODO: 在此添加额外的初始化代码

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE

}

这也告诉我们以后如果要实现这个功能只要在OnInitDialog()里加上ShowWindow(SW_MINIMIZE); 就可以了

你已建立了对话框,那么就生成了相应的cpp文件

在该为文件头部肯定是#include""

接下来是:

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

你就可以在后面定义了。

char string[n]="";(n可以预定义 #define n 10) 这是c语言的,使用比较基础,

不过在MFC最好是这样定义

CString string; *** 作会很方便

用的时候都是直接赋值就行了

定义是char的话 就 strcpy(string,"字符"),

CString的:string = _T("字符");

对于其它的使用,查查就知道了。

你说的这种 *** 作方法WORD当中有啊!!!!!它的“主控文档”功能就用实现啊!

在编辑一个长文档时,如果将所有的内容都放在一个文档中,那么工作起来会非常慢,因为文档太大,会占用很大的资源。用户在翻动文档时,速度就会变得非常慢。如果将文档的各个部分分别作为独立的文档,又无法对整篇文章作统一处理,而且文档过多也容易引起混乱。

使用Word 的主控文档,是制作长文档最合适的方法。主控文档包含几个独立的子文档,可以用主控文档控制整篇文章或整本书,而把书的各个章节作为主控文档的子文档。这样,在主控文档中,所有的子文档可以当作一个整体,对其进行查看、重新组织、设置格式、校对、打印和创建目录等 *** 作。对于每一个子文档,我们又可以对其进行独立的 *** 作。此外,还可以在网络地址上建立主控文档,与别人同时在各自的子文档上进行工作。

主控文档是子文档的一个“容器”。每一个子文档都是独立存在于磁盘中的文档,它们可以在主控文档中打开,受主控文档控制;也可以单独打开。创建主控文档的步骤如下:

(1)单击工具栏中的按钮,创建一个空文档。

(2)选择菜单中的菜单项,并切换到大纲视图下。此时工具栏自动激活,工具栏及各按钮的具体含义如图6-1 所示。

(3)输入文档的大纲,并用内置的标题样式对各级标题进行格式化。

(4)选定要拆分为子文档的标题和文本。注意选定内容的第一个标题必须是每个子文档开头要使用的标题级别。例如,所选内容中的第一个标题样式是“标题3”,那么在选定的内容中所有具有“标题3”样式的段落都将创建一个新的子文档。选定的方法是鼠标移到该标题前的空心十字符号,此时鼠标指针变成十字箭头,单击鼠标即可选定该标题包括的内容。

(5)单击工具栏中的按钮,原文档将变为主控文档,并根据选定的内容创建子文档,如图6-2 所示。可以看到,Word 把每个子文档放在一个虚线框中,并且在虚线框的左上角显示一个子文档图标,子文档之间用分节符隔开。

(6)把文件保存下来即可。Word 在保存主文档的同时,会自动保存创建的子文档,并且以子文档的第一行文本作为文件名。

注意:

如果文档中已经存在子文档,而且文档中的子文档处于折叠状态,那么按钮会无效。要使它有效,需要首先单击按钮。

在Word 2000 中,不但可以新建一个主控文档,而且可以将已有文档转换为主控文档。这样,用户就可以在以前工作的基础上,用主控文档来组织和管理长文档了。将已有文档转换为主控文档与创建空的主控文档基本类似,步骤如下:

(1)打开要转换为主控文档的已有文档。

(2)单击菜单中的菜单项,切换到大纲视图。

(3)通过使用内置标题样式或大纲级别建立主控文档的大纲, *** 作方法与创建主控文档时建立大纲的方法相同,可通过工具栏中菜单项所带的下拉列表来定义文本是标题或正文。

(4)选定要划分为子文档中的标题和文本,如果某些文本包含在一个标题下,那么在单击这个标题前的分级显示符号选定这个标题时,这些文本也会被同时选定,创建子文档后,这些文本也将包含在这个子文档中。

(5)单击工具栏中的按钮,创建子文档。

(6)把文件另存为别的文件名。

不管主控文档的文件名如何,每个子文档指定的文件名不会影响,因为它只是根据第一行的文本自动命名的。如果文件名相同,会自动在后面加上“1,2,…”来区别。

612 插入子文档

在主控文档中,可以插入一个已有文档作为主控文档的子文档。这样,就可以用主控文档将以前已经编辑好的文档组织起来,而且还可以随时创建新的子文档,或将已存在的文档当作子文档添加进来。例如,作者交来的书稿是以一章作为一个文件来交稿的,编辑可以为全书创建一个主控文档,然后将各章的文件作为子文档分别插进去。 *** 作方法如下:

(1)打开主控文档,并切换到主控视图。

(2)如果子文档处于折叠状态,先单击工具栏上的按钮,以激活按钮。

(3)将光标定位在添加已有文档的地方,确保光标的位置在已有的子文档之间。如果将改变定位在某一子文档内,那么插入的文档也会位于这个子文档内。

(4)单击工具栏中的按钮,将d出如图6-3 所示的对话框。

(5)在对话框的框的文件列表中找到所要添加的文件,然后单击按钮。

经过上述 *** 作后,选定的文档就作为子文档插入到主控文档中,用户可以像处理其他子文档一样处理该子文档。

613 展开和折叠子文档

在打开主控文档时,将折叠所有子文档,也就是每个子文档都将如图6-4 所示的超级链接方式出现。单击链接点,就可以单独打开该子文档。

要在主控文档中展开所有的子文档,可以单击工具栏中的按钮,文档展开后,原来的按钮将变为按钮。再次单击按钮,子文档又将成为如图6-4 所示的折叠状态。

当文档处于展开状态时,如果要打开并进入该子文档,可以双击该子文档前面的,Word 会单独为该子文档打开一个窗口。

614 重命名子文档

在创建子文档时,Word 2000 会自动为子文档命名。此外当把已有的文档作为子文档插入到主控文档中时,该子文档用的名字就是文档原来的名字。如果用户为了便于记忆管理,可以为该子文档重命名。

注意:

不能用等程序或DOS 命令来对该子文档重命名或移动子文档,否则,主控文档将找不到并重新组织子文档。

可以按如下步骤对子文档进行重命名:

(1)打开主文档,并切换到主控文档显示状态。

(2)单击按钮折叠子文档。

(3)单击要重新命名的子文档的超级链接,打开该子文档。

(4)单击菜单中的菜单项,打开对话框。

(5)选择保存的目录,输入子文档的新文件名,单击按钮。

关闭该子文档并返回主控文档,此时会发现在主控文档中原子文档的文件名已经发生改变,而且主控文档也可以保持对子文档的控制。注意保存该主控文档即可完成对子文档的重命名。

在重新命名子文档后,原来子文档的文件仍然以原来的名字保留在原来的位置,并没有改变原来的文件名和路径。Word 只是将子文档文件以新的名字或位置复制了一份,并将主控文档的控制转移到新命名后的文档上。原版本的子文档文件仍保留在原来的位置,用户可以对原来的文件自由处理,删除或者移动都不影响主控文档。

615 重新排列子文档

在主控文档中,子文档是按次序排列的,而且这个次序也是整篇长文档中各部分内容的次序。如果要改变它们的次序,如要把第一节调整到第二节,第二节作为第一节,可以按如下步骤进行。

(1)打开并显示主控文档。

(2)如果子文档处于折叠状态,要首先展开子文档。

(3)如果要重新排列的子文档处于锁定状态,首先解除锁定。解除的方法参看617 节。

(4)单击子文档图标,选定要移动的子文档,例如,在图6-5 中选定的是第二节(512)。

(5)将子文档图标拖动到新的位置。在拖动过程中,Word 将用一条带箭头的横线代表被拖动的子文档,这条横线的所处的位置就是子文档拖动后的位置。将这条横线到达正确位置后再松开鼠标即可,如图6-5 所示。

完成上述 *** 作后,被选定的子文档就会移到新的位置,从而实现了子文档的重排。

616 合并和拆分子文档

合并子文档就是将几个子文档合并为一个子文档。合并子文档的 *** 作步骤如下:

(1)在主控文档中,移动子文档将要合并的子文档移动到一块,使它们两两相邻。

(2)单击子文档图标,选定第一个要合并的子文档。

(3)按住Shift 键不放,单击下一个子文档图标,选定整个子文档。

(4)如果有多个要合并在一起的子文档,重复步骤(3)。

(5)单击工具栏中的按钮即可将它们合并为一个子文档。在保存主文档时,合并后的子文档将以第一个子文档的文件名保存。

如果要把一个子文档拆分为两个子文档,具体步骤如下:

(6)在主控文档中展开子文档。

(7)如果文档处于折叠状态,首先展开;如果处于锁定状态,首先解除锁定状态。

(8)在要拆分的子文档中选定要拆分出去的文档,也可以为其创建一个标题后再选定,如图6-6 所示。

(9)单击工具栏中的按钮。被选定的部分将作为一个新的子文档从原来的子文档中分离出来,如图6-7 所示。

该子文档将被拆分为两个子文档,子文档的文件名由Word 自动生成。用户如果没有为拆分的子文档设置标题,可以在拆分后再设定新标题。

617 锁定主控文档和子文档

在多用户协调工作时,主控文档可以建立在本级硬盘上,也可以建立在网络盘上。合作可以共用一台计算机,也可以通过网络连接起来。如果某个用户正在某个子文档上进行工作,那么该文档应该对其他用户锁定,防止引起管理上的混乱,避免出现意外损失。这时其他用户可以也只能以只读方式打开该子文档,其他用户只可以对其进行查看,修改后不能以原来的文件名保存,直到解除锁定后才可以。

锁定或解除主控文档的步骤如下:

(1)打开主控文档。

(2)将光标移到主控文档中

(3)单击工具栏中的按钮。

此时主控文档自动设为只读,用户将不能对主控文档进行编辑。但可以对没有锁定的子文档进行编辑并可以保存。如果要解除主控文档的锁定,只需再将光标移到主控文档中,单击按钮即可。

要锁定子文档,同样要把光标移到该子文档中,然后单击工具栏中的按钮即可锁定该子文档。锁定的子文档同样不可编辑,即对键盘和鼠标的 *** 作不反应,锁定后的子文档以图标标识,锁定后的主文档在文档中没有标识,但在标题栏中有两个字来标识。

解除子文档的锁定与解除主控文档的锁定方法相同。

618 在主控文档中删除子文档

如果要在主控文档中删除某个子文档,则可以先选定要删除的子文档,即单击该子文档前面的图标,然后按Delete 键即可。

从主控文档删除的子文档,并没有真的在硬盘上删除,只是从主控文档中删除了这种主从关系。该子文档仍保存在原来的磁盘位置上。

619 在子文档之间移动或复制文本或图形

在编辑长文档时,一个子文档经常会用到另一个子文档中的文本或图形。用户可以利用拖动的办法在两个子文档中进行移动或复制文档中的内容。如果文档在折叠状态,请首先展开子文档。用户可以直接在主控文档视图中移动或复制文档或图形,也可以切换到普通视图下进行,

如果文档很长,两个子文档距离比较长,直接拖动不方便,用户可以利用复制粘贴的方法进行即可。也可以把文档折叠起来,然后单击相应子文档的链接点,以另一个窗口打开子文档,再在这两个子文档中粘贴复制文本或图形即可。

6110 将子文档转换为主控文档的一部分

当在主控文档创建或插入了子文档之后,每个子文档都被保存在一个独立的文件中。如果想把某个子文档转换成主控文档的一部分。步骤如下:

(1)选定要转换的子文档

(2)单击工具栏中的按钮。

(3)该子文档的外围虚线框和左上角的子文档图标消失,该子文档就变成主控文档的一部分。

建议你用“主控文档”作为关键字在百度搜一下,你将得到更多知识。

祝你成功!!!

控件的句柄 和 获得焦点的控件的句柄 比较

如何得到那个控件获得了焦点? API 函数GetFocus()返回 得到焦点的控件的局部

如何得到 已知控件ID的某个控件的句柄

先用CWND类的GetDlgItem方法 得到 该控件的 CWnd 指针

然后调用CWnd类的GetSafeHwnd方法得到 该控件的句柄

if(GetDlgItem(控件ID)->GetSafeHwnd() == ::GetFocus())

甚至可以直接比较指针 不用比较句柄 用CWnd类的GetFocus方法返回 得到焦点的控件的 CWnd 指针 (不需要GetSafeHwnd了)

举例

mfc对话框工程 添加 wm_close、wm_timer消息 响应函数

oninitdialog中添加 定时器SetTimer(1, 1000, NULL);

onclose中KillTimer(1);删掉定时器

添加两个edit控件

ontimer函数中

void CMfcdlgDlg::OnTimer(UINT nIDEvent)

{

// TODO: Add your message handler code here and/or call default

//if(GetDlgItem(IDC_EDIT2)->GetSafeHwnd() == ::GetFocus())

if(GetDlgItem(IDC_EDIT2) == GetFocus())

{

MessageBox("edit2 get focus");

}

CDialog::OnTimer(nIDEvent);

}

程序 每隔1秒检测一下焦点在不在 edit2上 如果在 就messagebox输出 信息

在对话框程序的OnOK中:

123456789//将数据写入1txt,注意格式一致CFile f;fOpen();fWrite();fClose();//调用单文档,注意两个exe一个txt在相同目录,否则需要每个都单独指导绝对目录WinExec(_T("zxcexe 1txt"),SW_SHOWNORMAL); CDialog::OnOK();

WinExec调用外部程序是可以加参数的,而标准单文档程序可以通过参数导入open的文件名。

以上就是关于MFC对话框程序无法运行全部的内容,包括:MFC对话框程序无法运行、MFC对话框程序一运行直接最小化显示怎么办、MFC对话框应用程序,如何定义字符串常量及使用的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9358688.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存