
C++窗口模式程序
用C语言或C++语言在VC++6。0.。。VC++6.0上面写一个程序,运行程序时要显示窗口模式。越简单越好啊!代码加步骤(例如在哪里建新文件,我平常都是在Files里的...
用C语言或C++语言在VC++6。0.。。VC++6.0上面写一个程序,运行程序时要显示窗口模式。越简单越好啊!
代码加步骤(例如在哪里建新文件,我平常都是在Files里的 C++ SOURCE file建立的,但是到目前位置都不知道怎样写窗口程序 )
你们2个的都运行不了啊,提示说有不坚定的外部函数和变量? 展开
代码加步骤(例如在哪里建新文件,我平常都是在Files里的 C++ SOURCE file建立的,但是到目前位置都不知道怎样写窗口程序 )
你们2个的都运行不了啊,提示说有不坚定的外部函数和变量? 展开
3个回答
展开全部
不会吧,我的就是VC++6.0环境,你是不是有什么方面操作有误?你看了我下面说的吗?建立工程的时候,工程的类型必须是Win32 Application,而不能是Win32 Console Application,我估计你是建的Win32 Console Application或者你是直接保存一个cpp文件然后在编译时,由编译器默认建的工程(这种是Win32 Console Application)。
你如果是直接建立C++ Source Files,然后编译的话,生成的工程也是Win32 Console Application,这样不行。
还是说一下详细的步骤吧,“新建”,在对话框中,找到“工程”选项卡(注意,不是文件选项卡,在当前未打开工程时,默认的应该是工程选项卡),然后找到“Win32 Application”,再输入工程名。建立一个空白工程,然后再选择“新建”,选择“文件”选项卡(有工程时,默认应该是文件选项卡),再选择C++ Source File,输入文件名,然后把代码复制到编辑窗口中,编译执行即可
————————————
楼上那位可能不小心说错了
新建的时候,工程中应选择“Win32 Application”,然后再新建一个C++ Source File,把代码复制进去编译即可。
那个#include"stdafx.h"可以不用了,这里没那个文件。
下面是我以前弄的一个:
(注:其实可以使用MFC向导直接建立窗口,不用自己编写,这样方便很多,但是学习一下还是有必要的,使用MFC向导的方法就是建立工程时选择
“MFC AppWizard(exe)”,而非建立“Win32 Application”)
//以下为代码:
#include "windows.h"
LRESULT CALLBACK WNDFUN(HWND hWnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
switch(msg)
{
case WM_PAINT:
{
HDC hdc = GetDC(hWnd);
SetBkMode(hdc,TRANSPARENT);
TextOut(hdc,20,20,"窗口实例",sizeof("窗口实例")-1);
DeleteDC(hdc);
break;
}
case WM_LBUTTONDOWN:
{
HDC hdc = GetDC(hWnd);
SetBkMode(hdc,TRANSPARENT);
TextOut(hdc,20,40,"单击左键",sizeof("单击左键")-1);
DeleteDC(hdc);
break;
}
case WM_CLOSE:
{
DestroyWindow(hWnd);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
default:return DefWindowProc(hWnd,msg,wparam,lparam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASS wndcls;
wndcls.style = CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;
wndcls.lpszMenuName = NULL;
wndcls.lpszClassName = "CustomWnd";
wndcls.lpfnWndProc = WNDFUN;
wndcls.hInstance = GetModuleHandle(NULL);
wndcls.hIcon = NULL;
wndcls.hCursor = NULL;
wndcls.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wndcls.cbClsExtra = 0;
wndcls.cbWndExtra = 0;
//注册窗口
RegisterClass(&wndcls);
//创建窗口
HWND hwnd;
hwnd = CreateWindow("CustomWnd","Win32App",WS_CAPTION|WS_OVERLAPPEDWINDOW|WS_SYSMENU,50,50,500,500,NULL,NULL,wndcls.hInstance,NULL);
//显示窗口
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
//进入消息循环
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
你如果是直接建立C++ Source Files,然后编译的话,生成的工程也是Win32 Console Application,这样不行。
还是说一下详细的步骤吧,“新建”,在对话框中,找到“工程”选项卡(注意,不是文件选项卡,在当前未打开工程时,默认的应该是工程选项卡),然后找到“Win32 Application”,再输入工程名。建立一个空白工程,然后再选择“新建”,选择“文件”选项卡(有工程时,默认应该是文件选项卡),再选择C++ Source File,输入文件名,然后把代码复制到编辑窗口中,编译执行即可
————————————
楼上那位可能不小心说错了
新建的时候,工程中应选择“Win32 Application”,然后再新建一个C++ Source File,把代码复制进去编译即可。
那个#include"stdafx.h"可以不用了,这里没那个文件。
下面是我以前弄的一个:
(注:其实可以使用MFC向导直接建立窗口,不用自己编写,这样方便很多,但是学习一下还是有必要的,使用MFC向导的方法就是建立工程时选择
“MFC AppWizard(exe)”,而非建立“Win32 Application”)
//以下为代码:
#include "windows.h"
LRESULT CALLBACK WNDFUN(HWND hWnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
switch(msg)
{
case WM_PAINT:
{
HDC hdc = GetDC(hWnd);
SetBkMode(hdc,TRANSPARENT);
TextOut(hdc,20,20,"窗口实例",sizeof("窗口实例")-1);
DeleteDC(hdc);
break;
}
case WM_LBUTTONDOWN:
{
HDC hdc = GetDC(hWnd);
SetBkMode(hdc,TRANSPARENT);
TextOut(hdc,20,40,"单击左键",sizeof("单击左键")-1);
DeleteDC(hdc);
break;
}
case WM_CLOSE:
{
DestroyWindow(hWnd);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
default:return DefWindowProc(hWnd,msg,wparam,lparam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASS wndcls;
wndcls.style = CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;
wndcls.lpszMenuName = NULL;
wndcls.lpszClassName = "CustomWnd";
wndcls.lpfnWndProc = WNDFUN;
wndcls.hInstance = GetModuleHandle(NULL);
wndcls.hIcon = NULL;
wndcls.hCursor = NULL;
wndcls.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wndcls.cbClsExtra = 0;
wndcls.cbWndExtra = 0;
//注册窗口
RegisterClass(&wndcls);
//创建窗口
HWND hwnd;
hwnd = CreateWindow("CustomWnd","Win32App",WS_CAPTION|WS_OVERLAPPEDWINDOW|WS_SYSMENU,50,50,500,500,NULL,NULL,wndcls.hInstance,NULL);
//显示窗口
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
//进入消息循环
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
展开全部
新建 工程 Win32 Console Application -> 一个简单的工程
然后把以下代码复制过去编译就可以
#include "stdafx.h"
#include <windows.h>
WNDCLASSEX wc;
HWND hWnd;
MSG msg;
static TCHAR szAppName[] = TEXT ("cc") ;
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ; //开始窗口绘制
GetClientRect (hwnd, &rect) ; //获取窗口客户区的尺寸
DrawText (hdc, TEXT ("111111"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; //显示文本串
EndPaint (hwnd, &ps) ; //结束窗口绘制
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ; //在消息队列中插入一条“退出”消息
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam);//执行默认的消息处理
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.cbSize=12*4;
wc.hbrBackground=(HBRUSH) GetStockObject(WHITE_BRUSH);
wc.hCursor=0;
wc.hIcon=0;
wc.hInstance=hInstance;
wc.lpfnWndProc=WndProc;
wc.lpszClassName=szAppName;
wc.lpszMenuName=0;
wc.style=CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra=0;
RegisterClassEx(&wc);
hWnd=CreateWindowEx(0,szAppName,TEXT ("一个简单的Win32程序"),0x0CF0000,100,100,300,200,0,0,hInstance,0);
ShowWindow(hWnd,SW_SHOW);
UpdateWindow(hWnd);
while (GetMessage (&msg, NULL, 0, 0)) //从消息队列中获取消息
{
TranslateMessage (&msg) ; //转换某些键盘消息
DispatchMessage (&msg) ; //将消息发送给窗口过程
}
ExitProcess(0);
return msg.wParam;
}
然后把以下代码复制过去编译就可以
#include "stdafx.h"
#include <windows.h>
WNDCLASSEX wc;
HWND hWnd;
MSG msg;
static TCHAR szAppName[] = TEXT ("cc") ;
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ; //开始窗口绘制
GetClientRect (hwnd, &rect) ; //获取窗口客户区的尺寸
DrawText (hdc, TEXT ("111111"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; //显示文本串
EndPaint (hwnd, &ps) ; //结束窗口绘制
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ; //在消息队列中插入一条“退出”消息
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam);//执行默认的消息处理
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.cbSize=12*4;
wc.hbrBackground=(HBRUSH) GetStockObject(WHITE_BRUSH);
wc.hCursor=0;
wc.hIcon=0;
wc.hInstance=hInstance;
wc.lpfnWndProc=WndProc;
wc.lpszClassName=szAppName;
wc.lpszMenuName=0;
wc.style=CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra=0;
RegisterClassEx(&wc);
hWnd=CreateWindowEx(0,szAppName,TEXT ("一个简单的Win32程序"),0x0CF0000,100,100,300,200,0,0,hInstance,0);
ShowWindow(hWnd,SW_SHOW);
UpdateWindow(hWnd);
while (GetMessage (&msg, NULL, 0, 0)) //从消息队列中获取消息
{
TranslateMessage (&msg) ; //转换某些键盘消息
DispatchMessage (&msg) ; //将消息发送给窗口过程
}
ExitProcess(0);
return msg.wParam;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
windows程序设计 好好看看就知道该怎么做了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询