VC在哪写自己的代码? 别骂我脑残,新手。请问,VC在哪写自己的代码?我就看到界面的,不知道在哪些自己的,对于从程序开始时运行到程序结束使的代码应该放哪?多线程?还有按钮有事件吗?总之就是自己代码往哪加,谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先了解WINDOWS的消息机制,知道一个窗口的基本运行框架. WINDOWS的消息机制我大概了解,就是想问,主线程进入消息循环了,是不是就不能执行其他的了? MFC是不是都是多线程的,好像一般都是在窗口响应消息的那个过程中执行的 这哪问的出来啊,cpp,h里写代码啊,过于基础的知识自己去学比来这问快的多了 楼主建个简单工程,选择Win32 Application,再选择A sample win32 application生成的工程只有:// WinApp1.cpp : Defines the entry point for the application.//#include "stdafx.h"int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ // TODO: Place code here. return 0;}海阔天空任君写! 我靠哦,你连哪里写代码都不晓得,给你代码你不是更加看不懂?你说的VC肯定是指MFC,这框架有许多东西IDE会给你自动添加,我也是这么过来的,你自己找本书编个对话框,拖个按钮,双击进去写点功能,点点就知道了,比你在这里墨迹快多了,楼主勤快点啊,看着都着急 以下就是最典型的代码,仅供参考:// Win32App3.cpp : Defines the entry point for the console application.//#include "stdafx.h"int main(int argc, char* argv[]){ printf("我是老大我发飙!\n"); return 0;} 随便找本vc练一下,就知道怎么加代码啦,但是要熟悉,还有一段路!还在摸索。支持LZ 谢谢大家给的资料,在看了,还是要看书才会。我想问的那个不是MFC,我自己搞错了,应该是Win32项目,就是要自己画界面的那个。最后一个请求,能不能给我个例子看看. 是不是一般都在WndProc过程里根据消息来写代码,比如case WM_KEYDOWN:之类的,或者多线程? #include "stdio.h"#include "windows.h"LRESULT CALLBACK wndproc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );HINSTANCE hInstance; class win{public: BOOL W_class(); BOOL create();};BOOL win::W_class(){WNDCLASS wdnclass;//设计窗口 wdnclass.style=CS_HREDRAW|CS_VREDRAW;;//窗口 wdnclass.lpfnWndProc=wndproc;//窗口指针很重要 wdnclass.cbClsExtra=0;//通常为0 wdnclass.cbWndExtra=0;//通常为0 wdnclass.hInstance=hInstance;//句柄 wdnclass.hIcon=LoadIcon(NULL,IDI_ERROR);//图标句柄 wdnclass.hCursor=LoadCursor(NULL,IDC_CROSS);//光标句柄 wdnclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背色句柄 wdnclass.lpszMenuName=NULL; wdnclass.lpszClassName="zhuzi";//类的名字 return (RegisterClass(&wdnclass));//注册窗口}BOOL win::create(){ HWND hwnd; hwnd=CreateWindow("zhuzi","猪",WS_OVERLAPPEDWINDOW, 200,200,600,400,NULL,NULL, hInstance,NULL); //显示窗口 ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); return hwnd;}int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state){ win window if(!window.W_class()) return 0; if(!window.create()) return 0; //消息循环 MSG msg; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg);//接收消息 DispatchMessage(&msg);//将接收的消息处理 } return 0;}//过程函数LRESULT CALLBACK wndproc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ){ HDC hdc; PAINTSTRUCT ps; switch(uMsg) { case WM_PAINT: hdc=BeginPaint(hwnd,&ps); TextOut(hdc,0,0,"猪",strlen("猪")); EndPaint(hwnd,&ps); break; case WM_CHAR: char szchar[20]; sprintf(szchar,"ch%d",wParam); MessageBox(hwnd,szchar,"zhuzi",MB_OK); break; case WM_LBUTTONDOWN: if(IDYES==MessageBox(hwnd,"猪编程","zhuzi",MB_YESNO)) { HDC hDC; hDC=GetDC(hwnd); TextOut(hDC,150,150,"猪万岁",strlen("猪万岁")); ReleaseDC(hwnd,hDC); } break; case WM_CLOSE: if(IDYES==MessageBox(hwnd,"真的退出","zhuzi",MB_YESNO)) { DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); break; } return 0; VC 蓝牙通信。。。 非模态对话框随主对话框最小化后的错误 vc6.0 components and controls gallery的组件打不开 请问用api编程时,能否用资源文件 如何生成EXE文件? 如何取得在树形控件上单击右键处的鼠标坐标? 如何得到自己在广域网上的地址? 我通过BDE的SQL Links连接sybase数据库,在应用程序运行后,从数据库里读出的中文是乱码?求救!谢谢 用vc编译成的EXE文件能否在没有安装VC的机器上直接执行? 如何画一根可以选取,移动,放大,缩小的直线? 北京C++求职 如何在编辑框中输入十六进制的数?如何把这个数转成10进制?
// WinApp1.cpp : Defines the entry point for the application.
//#include "stdafx.h"int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here. return 0;
}海阔天空任君写!
我靠哦,你连哪里写代码都不晓得,给你代码你不是更加看不懂?你说的VC肯定是指MFC,这框架有许多东西IDE会给你自动添加,我也是这么过来的,你自己找本书编个对话框,拖个按钮,双击进去写点功能,点点就知道了,比你在这里墨迹快多了,楼主勤快点啊,看着都着急
以下就是最典型的代码,仅供参考:// Win32App3.cpp : Defines the entry point for the console application.
//#include "stdafx.h"int main(int argc, char* argv[])
{
printf("我是老大我发飙!\n");
return 0;
}
支持LZ
#include "windows.h"LRESULT CALLBACK wndproc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
HINSTANCE hInstance; class win
{
public:
BOOL W_class();
BOOL create();
};
BOOL win::W_class()
{
WNDCLASS wdnclass;//设计窗口
wdnclass.style=CS_HREDRAW|CS_VREDRAW;;//窗口
wdnclass.lpfnWndProc=wndproc;//窗口指针很重要
wdnclass.cbClsExtra=0;//通常为0
wdnclass.cbWndExtra=0;//通常为0
wdnclass.hInstance=hInstance;//句柄
wdnclass.hIcon=LoadIcon(NULL,IDI_ERROR);//图标句柄
wdnclass.hCursor=LoadCursor(NULL,IDC_CROSS);//光标句柄
wdnclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背色句柄
wdnclass.lpszMenuName=NULL;
wdnclass.lpszClassName="zhuzi";//类的名字 return (RegisterClass(&wdnclass));//注册窗口
}BOOL win::create()
{
HWND hwnd;
hwnd=CreateWindow("zhuzi","猪",WS_OVERLAPPEDWINDOW,
200,200,600,400,NULL,NULL,
hInstance,NULL);
//显示窗口
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
return hwnd;
}
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
win window
if(!window.W_class())
return 0;
if(!window.create())
return 0;
//消息循环
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);//接收消息
DispatchMessage(&msg);//将接收的消息处理
}
return 0;
}//过程函数
LRESULT CALLBACK wndproc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
HDC hdc;
PAINTSTRUCT ps;
switch(uMsg)
{
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,"猪",strlen("猪"));
EndPaint(hwnd,&ps);
break;
case WM_CHAR:
char szchar[20];
sprintf(szchar,"ch%d",wParam);
MessageBox(hwnd,szchar,"zhuzi",MB_OK);
break;
case WM_LBUTTONDOWN:
if(IDYES==MessageBox(hwnd,"猪编程","zhuzi",MB_YESNO))
{
HDC hDC;
hDC=GetDC(hwnd);
TextOut(hDC,150,150,"猪万岁",strlen("猪万岁"));
ReleaseDC(hwnd,hDC);
}
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"真的退出","zhuzi",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
break;
}
return 0;