如何用vc编写程序

作者&投稿:安杰 (若有异议请与网页底部的电邮联系)
怎样用vc++编写一个窗口应用程序?~

1、首先设计好界面。

2、然后编写DoDataExchange程式。

3、然后编写OnInitDialog初始化程式。

4、然后编写OnSysCommand程式。

5、然后编写OnPaint绘制程式。

6、最后编写OnSetlock锁程式。

方法/步骤


1
打开VC++6.0,界面如下,

2
按左上角菜单栏的“文件”-->“新建”,打开如下界面

3

左边的列表中选择“Win32 Console
Application”,即win32控制台工程,控制台就类似windows中的cmd窗口,刚开始编程,选择创建这个工程就可以了。在右边输入工程
名称,我在这里输入“FirstProgram”,位置选择一个存放该工程的文件夹,如果不放在默认的路径下,则点击右边的那个显示为“...”的按钮,
然后自定义选择路径,我选择的路径是F:\Cpp。

4
然后点击确定,在接下来出现的对话框中选择“一个空工程”,点击完成即可,在后续的出现的窗口中点击“确定”。

5

个时候一个空工程就创建完成了,我们的源代码文件将包含在这个工程中。我们现在开始创建源代码文件,点击软件左上角的“文件”-->“新建”,然后
出现刚才见到过的对话框,先选择上面标签中的“文件”,然后再选择下面列表中的“C++ Source
File”,文件名输入hello.cpp,然后点击“确定”。

6
确定完后,右边的编辑区就会自动打开空白的hello.cpp文件,左边的工作区也可以看到整个工程的组织结构

7
接下来我们写一个简单的程序,在屏幕上显示“hello world!”,最经典的程序
#include
using namespace std;
int main()
{
cout<<"hello world!
";
return 0;
}

8
然后按编辑区上方的按钮进行编译、链接,然后执行,具体如下图所示

9
执行结果如下图所示,我们用vc++6.0写的一个小程序就执行成功了

http://jingyan.baidu.com/article/2f9b480d4cdeed41ca6cc258.html

第一篇

为Non-COM程序添加对象模型(2)

初始化对象模型

创建一个新的组件实例,调用Load方法来获得一对结果。首先,连接到记事本运行中的拷贝。其次,在记事本窗口中打开一个已存在的文档或创建一个空文档。

与记事本相结合,需要夺取主窗体的句柄和覆盖了整个客户端区域的编辑控件的句柄。可以用C++ FindWindow API函数检索第一个打开的并且和记事本的Windows类名“notepad”相匹配的窗口(此后台信息已经可以由Spy++提供,它是一个Visual Studio工具,可以透视Windows的隐私),可以使用以下的C++代码:

STDMETHODIMP

CNotepadApplication::Load(BSTR bstrFile)

{

m_hwnd = FindWindow(_T("notepad"), NULL);

if (!IsWindow(m_hwnd))

_StartApp(OLE2T(bstrFile));

Load方法尝试找到一个运行中的记事本实例。如果成功,它忽略输入的文件名。否则,它产生nodepad.exe,并用命令行传递bstrFile参数。

这是仅有的可能的方法来做到这些了。可以更改Load方法的行为遵守其他的规则。然而,需要注意的是,在程序的用户接口中隐蔽地加载一个文本文件是通过命令行来实现的。否则,必须求助File菜单中的Open命令,但这就不是自动和隐蔽的了。

一旦找到了记事本主窗体的句柄,就可以利用它并使用C++代码检索子编辑控件。

m_hwndEdit = FindWindowEx(

m_hwnd, NULL, _T("edit"), NULL);

记事本的结构提供了一个类名为“notepad”的窗口,它的客户区域被一个编辑控件占据——一个类名为“edit”的窗口。FindWindowsEx API函数检索第一个类名为“edit”的窗口,它是m_hwnd的子女。

下一步,在COM对象中创建一个属性,它描述子编辑控件的内容。调用名为Text的可读写属性。给它一个文本内容,它将会立即影响到记事本的缓冲区。

Set npad = CreateObject("NotepadOM.Application")

npad.Load ""

npad.Text = "Sample text"

在前面的代码中,我们建立了一个新的未明名的文本文档,它的内容已经被赋予了某个字符串。当然,可以使用Text属性连接文本到其他变量中。

npad.Text = "Sample text"

npad.Text = npad.Text & vbCrLf & "for the article"

即使记事本是个SDI程序,也可能需要像清晰的对象调用过程那样公开文本内容,例如文档操作。这符合更清楚、更雅致的模型设计,但是它仍需要为架构设计带来多余的复杂性。为什么创建一个新的ATL对象仅仅是为了优化一些文本相关的功能呢?

在实现Text属性时,利用了Windows32编辑控件的一个鲜为人知的特性。所有Windows32控件不能跨进程访问。例如,不能请求另一个应用程序的rich edit box以字符串类型返回它的内容。产生这个问题的原因是,任何内存地址只在进程管理范围内才有效。这个规则有少部分例外。

所有的Windows标准控件buttons、listboxes、和edit controls或者其他控件都不违背这项规则。它们的内容以在进程间被任意地读或写。这功能在Windows 95时为了保持向后兼容现存的Windows3x程序就出现了,它用进程间子类化。此同样存在于Windows XP和Windows 2000中。

可以使用一些消息,如WM_GETTEXT和WM_SETTEXT来获得或写入文本框的内容而不顾实际进程的相关情况。同样,当运行VBS脚本时,实际上已涉及到两个不同的进程,记事本和wscript.exe,它们控制着VBS脚本。用C++实现此Text属性,代码如下:

STDMETHODIMP

CNotepadApplication::get_Text(BSTR *pVal)

{

USES_CONVERSION;

int nLen = 1 + SendMessage(m_hwndEdit, WM_GETTEXTLENGTH, 0, 0);

LPTSTR pszBuf = new TCHAR[nLen];

SendMessage(m_hwndEdit, WM_GETTEXT, nLen, (LPARAM) pszBuf);

*pVal = SysAllocString(T2OLE(pszBuf));

delete [] pszBuf;

return S_OK;

}

STDMETHODIMP

CNotepadApplication::put_Text(BSTR newVal)

{

USES_CONVERSION;

SendMessage(m_hwndEdit, WM_SETTEXT, 0, (LPARAM) OLE2T(newVal));

return S_OK;

}

添加编辑函数

访问编辑控件的句柄可以弄清编辑所需的一串函数——特别是关于文本选择的部分。可以很容易地添加方法选择所有的缓冲区中的文本或限制为某个区域选择。SelectAll和SelectText用C++实现,方法如下:

STDMETHODIMP

CNotepadApplication::SelectText(

int nFrom, int nTo) {

SendMessage(m_hwndEdit, EM_SETSEL, nFrom-1, nTo-1);

return S_OK;

}

通过EM_SETSET消息可以很容易地在编辑控件中实现文本选择。在Windows32中,第一个可选的字符是在0位置,但是相关方法使它从1开始。而指定-1~0的范围可以选择整个文本。

编辑框中正文的字体名称由某个注册值lfFaceName决定,在以下位置可以找到此键值:

HKEY_CURRENT_USER

\Software

\Microsoft

\Notepad

将它设为想要用的键值。记事本在启动之前读取这个设置。为了使它生效,请记住在调用Load之前设置好它。

set npad = CreateObject("NotepadOM.Application")

npad.Font = "Lucida Console"

npad.Load "readme.txt"

当一个交互式的用户单击菜单时,例如“File | Open”,主窗体发送WM_COMMAND消息,其中WPARAM参数被赋予串联的两个字。低位字是命令的ID,高位字包含消息码或表示触发的值——键盘加速键或菜单。用C++调用一个菜单命令、发送一个WM_COMMAND消息到记事本,代码如下:

SendMessage(m_hwnd, WM_COMMAND,

MAKELONG(nCommand,0), 0);

必须用特殊的工具为nCommand参数指出正确的值,就像Spy++。既然这样,我稍微修改文章中所描述的DLL版本。“Hook,Line and Sinker”〔Visual C++ Developers Journal February 2001〕。此例程产生并钩住,然后创建记事本的子类。它过滤窗口接收到的所有消息,并在命令代码是WM_COMMAND时弹出对话框显示command ID。

if (uiMsg == WM_COMMAND) {

// Get the value of LOWORD(wParam)

}

需要添加的仅仅是存储或显示命令代码的程序。检验主记事本的菜单命令ID。只要给出了这个,调用菜单命令就很简单了,代码如下:

const NOTEPAD_FILE_OPEN = 10

Set npad = CreateObject("NotepadOM.Application")

npad.InvokeMenu NOTEPAD_FILE_OPEN

如果要编程关闭运行中的实例,需要想到在记事本窗口上调用DestroyWindows。然而,DestroyWindows只能在属于同一进程的窗口的进程中调用。要卸载记事本,用C++简单的发送一条退出代码的WM_COMMAND消息:

SendMessage(m_hwnd, WM_COMMAND,

MAKELONG(28,0), 0);

有些功能是无法从非自动化的程序中获得的。例如,打开文件和另存为是不可能实现的,因为程序并不通过消息或API暴露这些代码,需要编写代码来存储它。举个例子来说,在记事本中,存储运行时结果需要响应Save或Save As命令,但是它们都是交互式的命令,需要用户单击OK按钮或输入一个新的文件名。这是原解决方案固有的限制。

最近,在一个客户中碰到一个相似的问题,我应要求在不同环境处理一些传统的Windows程序(其中一个是记事本)。本质上来说,Win32 made-to-measure应用程序获得TCP/IP通道指令并转换它们以执行本地的Windows应用程序。通过Windows32消息请求服务的方式和在此所做的很相似。下一目标是用COM对象模型封装此通信模式。

关于作者

Dino Esposito是Wintellect的ADO.NET专家和培训师并且在罗马当咨询师。Dino是《Building Web Solutions With ASP.NET and ADO.NET》(微软出版)一书的作者,是VB-2-The-Max (http://www.vb2themax.com <http://www.vb2themax.com>)的创始人。可通过dinoe@wintellect.com联系到Dino。


怎样编写一个顺序执行的程?
在Windows系统下编写一个简单的程序需要使用软件环境,例如在Visual C++(VC)的环境下使用C语言编写程序。首先,打开VC,并新建一个工程。接着,新建一个C语言文本文件,这是程序的主要载体。在文本文件中输入程序代码。程序的具体内容取决于你想要实现的功能,但基本的结构通常包括输入输出、变量定义、函数...

在VC++6.0中怎么用c语言编写程序?
1.首先先去网上找到这个软件的安装包,然后安装到自己电脑上,在安装的过程中,W7系统可能会说软件与系统不兼容,直接忽略无影响,继续安装。2.安装好后双击这个软件在桌面上的图标,打开软件后,建立c语言编写文件,点击文件新建一个C++sourcefile,然后开始编写程序。3.编写程序的过程中,先把头文件写上...

如何用Microsoft Visual C++6.0编写程序
格式”界面后,设置自己喜欢的字体,大小,背景颜色,将Number改成红色,String改成紫色。6、设置完成之后,点击“确认”进入下一步。7、完成设置后点击左上角“文件”选项再点击“新建”进入新建文件界面。8、设置文件名称(C语言拓展名为 .c、C++语言拓展名为 .cpp)和文件地址即可开始编写程序。

如何用VC++6.0创建windows窗口程序?
1、启动vc++6.0。2、在文件菜单里单击新建。3、在弹出的窗口里单击MFC AppWizard (exe)。4、在右边的工程名称里输入程序名,例如firstc。5、单击确定,在弹出的窗体里选择基本对话框,单击完成,单击确定。6、这时已经生成了一个窗体,两个按钮的窗口程序,可以运行。7、在这个窗体上继续添加添加需要...

如何用VC++写个C++的程序,开始怎么创建,还有在VS2010中怎么创建啊_百度...
1、首先我们打开VC++工具,然后我们点击文件菜单下面的新建选项。2、在弹出的新建界面,我们选择工程页下面的Win32 Console Application程序。3、然后会弹出Win32控制台程序的程序类型界面。4、创建完了以后,你会在VC++左侧看到classes项目文件名。5、然后在点击新建菜单,这次点击文件页下面的C++ Source ...

如何在VC 里编写C程序?
1在VC的file菜单里选New 2在New对话框中选择Projects选项卡 3在Projects选项卡中选Win32 Console Application并输入工程名‘练习专用’,点OK键 4一路保持默认选项,完成工程的建立 5再次选择file菜单里的New 6在New对话框中选Files选项卡 7在Files选项卡中选择C++ source file并输入1.c 8完成1.c的...

vc++6如何编译c语言程序?
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。c 语言应用程序上机过程具体步骤如下:打开VC++ 6.0程序 2、点“文件”,“新建“。在新建页面上选择文件→C++ Source File 并...

vc++6.0怎么编写程序?
首先说一下TC和VC的区别。1、TC是DOS环境界面下的编程环境,Tubro C++3.0版可以编译C++程序,而2.0版本以前的只能编译C程序。2、VC是Windows环境下可视化的编程环境,不仅可以编译C\/C++程序,还可用来开发MFC等可视化程序。VC打开后需要以下三个步骤:第一步、点击文件 - 新建 - 工程选项卡里选 一...

怎样使用VC软件编译并运行C语言程序
使用VS2008编译C程序,本文中使用VS2008 professional版本。1.打开VS2008,这就不用多说了吧2.打开了VS2008的主界面,然后选择,文件→新建→项目弹出如图对话框 3、在项目类型中选择VC++→win32 然后在右侧模板中选择win32控制台应用程序,再在下面输入一个名称(项目名称,不用带.C)选择保存位置后...

怎么用vc6.0写c程序?
如果系统在最下面的对话框提示没有错误(显示为“.exe - 0 error(s),0 warning(s)”,其中***代表你的文件名),按“Ctrl+F5”就能运行你写的程序了。如系统提示有错误,系统会在最下面的那个框进行提示(点击该框,滑动鼠标滑轮可以看提示的详细信息),根据提示修改代码后重新保存,重新编译,...

云梦县15591498265: 如何使用VC2010编写一个C语言程序啊,求高手指教,如何创建,如何运行,越详细越好 -
大季蓉雷米: 文件->新建项目->选择VC++栏选择Win32,再选择Win32控制台应用程序,进入生成项目向导,勾选空项目 然后再在项目->添加新建文件取自己需要的名字加上.c/.cpp后缀即可 ,运行,有表示同样按F5也是编译运行 建议程序里面加上 #include<stdlib.h>头文件,叫上system("pause");这样才不会运行完就退出

云梦县15591498265: VC2010如何编写C程序 -
大季蓉雷米: 按下Ctrl + Shift + N 新建一个项目 在新建项目对话框中选择 Visual C++ / Win32 / Win32 Console Application 然后在新建项目对话框下边的 Name 输入框中输入项目名称, 如 myapp1, 然后点击 OK 按钮. 按下Ctrl + Alt + L 打 Solution Explorer ...

云梦县15591498265: 如何在VC中生成应用程序 -
大季蓉雷米: 程序编写完成后,要进行编译,在Build菜单下面,如果提示有错误,要查找并改正.需要提醒的是,VC程序编写相当灵活,可能你某句语法错误,程序并不予以提示,所以,在编写的时候,你要养成良好的编程习惯.编译完成就可以运行了....

云梦县15591498265: 怎样用vc编译C语言文件,请详细说明步骤 -
大季蓉雷米: 如果只是想简单用VC编译c语言文件,可以不用那么复杂,你可以这样做:在你想保存的文件夹下,新建一个.txt的文本文件,名字就取你要新建立的c文件的名字,但是注意后缀名改为.c;让后右键(如果只装了vc的话,也可以直接双击打开)...

云梦县15591498265: 怎么用VC编一个小exe程序 -
大季蓉雷米: 打开vc6,file->new->projects->MFC AppWizard(exe)->projects name:填入你的工程名称xxx->location选桌面吧->ok->Dialog based->Finish->OK->view->Class...

云梦县15591498265: 用VC编一个程序,急用?? -
大季蓉雷米: #include using namespace std; int main() { const char* pass = "abc123"; char str[100]; int i; for(i=0; i coutif(strcmp(gets(str),pass)==0) break; } if(i>=3){ coutreturn 0; } double a, b; char ch; coutcin >> a >> b; do{ cout 加\n\t2===>减\n\t3===>乘\n\t...

云梦县15591498265: 二级C语言 怎么用VC 6.0 编? -
大季蓉雷米: 首先进入VC 6.0.然后打开“文件”→“新建".在出现的对话框中的“工程”下选择“Win32 Console Application”选项,然后在右侧工程名称输入名字;然后确定. 之后一般是选择“一个空工程”→完成→确定.然后再选择“文...

云梦县15591498265: 用vc6.0编写c程序 -
大季蓉雷米: 如果是 怎么建立个C程序文件的步骤后 并编译运行的话1.打开软件 新建(new)-选择“文件”选项中的C/C++HeaderFile 设置好存放位置和文件名称 2.进入代码的编写 3. Ctrl+F7(编译) 4. F7(组建) 5. Ctrl+F5(运行)

云梦县15591498265: 如何用VC编写一个程序,运行打开指定网页 -
大季蓉雷米: ShellExecute(NULL,"open","这里写要打开的网址",NULL,NULL,SW_SHOWNORMAL); 图标的话,把VC自动生成的MFC的那个图标文件换掉,名字设成一样的就行.

云梦县15591498265: 如何用visual c++写c程序?? -
大季蓉雷米: 编写C语言的方法如下:运行VC++6.0,File->New->Files选项卡->c++ source file ->填入程序名和保存目录,点击OK调试:Ctrl+F7,编译F7,连接Ctrl+F5,运行要是产生了错误,在下面的窗口中会提示你产生了几个error 和 几个 warning,然后你双击提示信息,就可以定位到产生错误的地方(或其附近),然后你再调试,F10,单步执行,遇到函数不进入其内部,F11,也是单步执行,但遇到函数会进入其内部,以上简短介绍下,最好还是查阅书籍,希望对你有用

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网