C语言windows编程基础之创建项目(vs2010)
erbi_lucifer吧
全部回复
仅看楼主
level 10
堕erbi 楼主
【C语言windows编程基础之创建项目】
2012年02月20日 02点02分 1
level 10
堕erbi 楼主

这是最基础的操作……入门用的……估计大家都会了……
这里用的编译器是vs2010,你可以是vs2008或vs2005,甚至是vc 6.0 都是差不多的……
一通百通!
文档的那些程序例子都是按以下方法创建的!
2012年02月20日 02点02分 2
level 10
堕erbi 楼主
01. 创建项目文件
文件—>新建:选择win32程序,填入名称,按下确定……
出现向导,按“下一步”,选择空项目……文档的那些程序例子都是按这样创建的……
(注意“windows应用程序“和”空项目“)
添加CPP文件,用于写代码……
在右边的“解决方案管理器”(你也可以在菜单“视图(V)”的下拉列表找到)的文件夹右击——>添加——>新建项
新建CPP

2012年02月20日 02点02分 3
level 10
堕erbi 楼主

02.添加资源:在右边的“解决方案管理器”(你也可以在菜单“视图(V)”的下拉列表找到)的资源文件夹右击——>添加——>资源
我们的图标,图片,对话框都在这里添加:
选择“Dialog”,按下新建……即可新建dialog对话框,例子的小程序都是用它来当界面窗体的……!
新建后的对话框如下图……你可以自由发挥,改变窗体的属性(如窗体左上角的文字你可以在对话框的caption属性改),在工具箱中拖入控件
你可以在对话框上右击选择属性,来改变对话框的属性
下图你也可以看到,工具箱的下方可以切换到资源视图,看看工程所包含的资源文件
控件直接在工具箱拉出来,然后在对话框里拖动鼠标画出来
接着是加入图标和图片,图标是Icon ,图片是Bitmap。都是先选择要加入的类型(下图是选择图标),然后按下“导入”!记得是“导入”!!!这样子你可以选择你想要加入的图标文件或图片……对于图标文件(.ico)直接导入就会在对话框程序编译时自动加上。你在vs2010写黑窗体的控制台程序依旧可以用这个方法加入图标……O(∩_∩)O哈哈~

2012年02月20日 02点02分 4
level 10
堕erbi 楼主
03. 图片控件的使用注意:
在工具箱中按下“Picture Contro”,然后在对话框上画出
大小自定,初画时是透明的方框
我们在属性窗口更改它的属性:
Type:Bitmap (样式改为位图,于是变成下图的样子,一个小图)
Image:(这个属性只有在Type为Bitmap时并且添加了图片资源才能用,在其下拉列表中现在刚才导入的图片的ID,并且图片的大小会根据原图大小而定,你可以先用图片处理程序处理图片再导入以获得想要的大小……)
有时候会将一些控件挡在下面,你可以将按钮剪切后再弄图片,然后在图片上粘贴按钮……或许重新画也可以
每一个控件都有自己的ID(如默认的取消按钮是:IDCANCEL),用来识别……
Dialog里面的图片边缘有空位,你可以将它们拉掉……
修改对话框的属性:
caption:梦幻祈祷
Center:true (窗体居中)
Minimize Box:true (拥有最小化)
加入代码,按下绿色的“▶”键进行编译运行:
有时候有些控件画出后老是选不中,这时你可以在属性栏最上面的下拉列表中选择控件

2012年02月20日 02点02分 5
level 10
堕erbi 楼主
04.以下是代码(这是简单的模板,如果你是用这种方法创建对话框程序的话可以使用):
#include <tchar.h>
#include <Windows.h>
#include "resource.h" INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG :
{
//对话框初始化的消息,没有进行特别处理的话可以直接省略。
}
break;
case WM_COMMAND : //按钮被按下的消息
{
switch (wParam)
{
case IDOK :
{
//ID是 IDOK 的按钮被按下
MessageBox(hwndDlg,_T("试手的实验程序O(∩_∩)O哈哈~ \n公司:Erbi-lucifer \n作者:【Erbi-lucifer:光影】 \n时间:2012年1月30日20:57:37"),_T("光影软件"),MB_OK);
}
break;
case IDCANCEL:
{ //ID是 IDCANCEL 的按钮被按下
EndDialog(hwndDlg, IDCANCEL);//结束
}
break;
}
}
default:break;
} return 0;
}
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) //主函数
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc); //弹出对话框
return 0;
}
2012年02月20日 02点02分 6
楼主 这段代码加在哪啊
2014年11月06日 13点11分
回复 古岛干9 :3L的新建CPP
2014年11月07日 01点11分
level 10
堕erbi 楼主
对于windows的入门,网上有许多文章,都可以去学习学习……O(∩_∩)O哈哈~
以下是运行效果:
简单的弹出对话框窗口完成了
这是图片:

2012年02月20日 02点02分 7
level 10
堕erbi 楼主
最后:
对于windows的消息机制,句柄之类的知识可以看看《windows程序设计》,虽有些深奥,入门则可以想了解这本书前面的一些基础,等一段时间,有基础了再去深入研究……
现在要知道的是;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
它是主函数,相当于控制台的main
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
这个是等同上一个的,是它的宏,随便你选择一个。
第一个参数被称作「执行实体句柄」,程序通过检查hPrevInstance参数就能够确定自身的其它执行实体是否正在运行。
传给WinMain的第二个参数总是NULL(定义为0),这是为了兼容16位的机子而存在的,现在已经过时了。
第三个参数是用于执行程序的命令列。某些Windows应用程序利用它在程序启动时将文件加载内存。相当于main函数的参数。如果你的程序需要带参数运行,那就多注意一下这个参数。
*重要一点,文件右击-》打开方式-》(或双击运行)-》弹出程序并打开文件。这是将文件名作为参数传送给程序的过程!
如:自己制作的视频播放器关联文件后,双击视频文件,就会弹出你的播放器,此时你如果没有对传来的参数进行处理(如加入到播放列表进行播放),那就只有弹出播放器木有播放……%>_<%
第四个参数指出程序最初显示的方式,可以是正常的或者是最大化地充满整个画面,或者是最小化显示。

2012年02月20日 02点02分 8
level 10
堕erbi 楼主
/********************************************************
#include <tchar.h>
#include <Windows.h>
#include "resource.h"
*********************************************************/
001.windows.h:
windows编程要加的头文件……这个不用说了。
002. tchar.h
:宽字符处理需要的函数,如“_T()”,这个等同于“TEXT()”,里面用来放字符串,表明是宽字符,在vs2010中要分清宽字符和普通字符,因为有些函数只支持宽字符,而有些不支持。
在vs2010中,MessageBox函数需要使用"TEXT()"或"_T()"来表示内容是宽字符(因为默认情况下MessageBox是宽字符版的MessageBoxW),而当你不想用宽字符时,则需要使用MessageBoxA函数……
以下是转换函数:
MultiByteToWideChar:普通字符转宽字符
WideCharToMultiByt:宽字符转普通字符
003.resource.h:
资源文件的头文件,对于简单入门来说,程序里直接用编译器的对话框做主窗口,需要的资源直接添加,控件也可以直接画出来,但后面我们还需要自己去用代码创建窗口,使用控件才算C的SDK入门……
对于程序的学习,当然是越底层越好,这样理解才比较透彻,但用于开发,当然需要高级的语言才比较省事。

2012年02月20日 03点02分 10
level 1
沙发
2012年02月21日 11点02分 11
level 10
堕erbi 楼主
欢迎……[揉脸]
2012年02月21日 11点02分 12
level 1
c语言还能这么玩
2012年02月21日 17点02分 13
level 10
堕erbi 楼主
[拍砖]c语言还能做很多东东……最近在慢慢发帖中……可是代码楼经常被吞……下载链接楼更是吞无赦……
2012年02月22日 03点02分 14
level 4
提示三处错误
2012年03月10日 06点03分 15
level 10
堕erbi 楼主
放截图……[抖胸]
2012年03月10日 09点03分 16
level 4
1>------ 已启动生成: 项目: pcl, 配置: Debug Win32 ------
1>生成启动时间为 2012/3/10 21:50:46。
1>PrepareForBuild:
1> 正在创建目录“c:\users\pcl\documents\visual studio 2010\Projects\pcl\Debug\”。
1>InitializeBuildStatus:
1> 正在创建“Debug\pcl.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>ClCompile:
1> pcl.cpp
1>c:\users\pcl\documents\visual studio 2010\projects\pcl\pcl\pcl.cpp(5): warning C4067: 预处理器指令后有意外标记 - 应输入换行符
1>c:\users\pcl\documents\visual studio 2010\projects\pcl\pcl\pcl.cpp(6): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>c:\users\pcl\documents\visual studio 2010\projects\pcl\pcl\pcl.cpp(44): error C2065: “DialogProc”: 未声明的标识符
1>
1>生成失败。
1>

2012年03月10日 13点03分 17
level 10
堕erbi 楼主
估计是这里没有换行……
度娘吞回车,我忘记整回来了……[拍砖]
2012年03月10日 20点03分 18
level 3
楼主你好,看到你的这些成果真的好羡慕,有空你多多指导哦,对了,window编程的什么书最好,推荐一两本,跟你学window编程吧。
2012年06月25日 01点06分 19
果断推荐《windows程序设计》,还有视频教程《C语言也能干大事》
2012年06月25日 03点06分
level 12
好久不见,最近一切安好否?
2012年07月20日 16点07分 21
人还在,你呢?
2012年07月21日 15点07分
1 2 尾页