当前位置:首页 » 编程软件 » vc界面编程

vc界面编程

发布时间: 2022-05-31 11:03:31

A. VC++6.0编程时,怎样用自己设计的软件界面

方法:在新建工程的时候选择MFC应用程序(不要选MFC DLL),然后在资源管理器,就能看到界面了。你可以看到一个主窗口,这就是你自己程序的界面。
在这个界面按CTRL + X可以调出工具箱,可以把自己喜欢的按钮啦什么的加上去。
同样是这个界面,按CTRL + ENTER 可以调出属性框,可以更改窗口的风格、大小、样式、标题、背景等等等等。

如果想得到更加美丽的界面,可以深入学习MFC编程(相对形象化)或者Windows GDI(相对更底层,直接使用Windows接口)。
如果想做出现代风格的界面(例如360安全卫士主界面或者Office 2007以上版本的界面),就请安装更新版本的VC++ , 例如包含在Visual Studio 2010 中的 VC++2010,使用Ribbon界面。

祝你学习愉快^_^

B. 在VC++界面编程里怎样在一个菜单项下添加一个对话框

1..添加一个对话框类。例如:CMaxDialog
2..在菜单类的源文件中调用该对话框类的引用#include
"MaxDialog.h"
3..在菜单项的消息响应函数中
CMaxDialog
dlg;
if(dlg.DoModal())
{
//代码....
}

C. vc界面设计

tab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格:

TCS_BUTTONS 使用按钮来表示页选择位置

TCS_MULTILINE 分行显示页选择位置

TCS_SINGLELINE 只使用一行显示页选择位置

在控件创建后必需向其中添加页面才可以使用,添加页面的函数为:

BOOL InsertItem( int nItem, LPCTSTR lpszItem );nItem为位置,从零开始,lpszItem为页选择位置上显示的文字。如果你希望在页选择位置处显示一个图标,你可以调用BOOL InsertItem( int nItem, LPCTSTR lpszItem, int nImage );nImage指明所使用的图片位置。(在此之前必须调用CImageList * SetImageList( CImageList * pImageList );设置正确的ImageList)

此外CTabCtrl还提供了一些函数用于得到/修改控件的状态。

int GetCurSel( )/int SetCurSel( int nItem );用于得到/设置当前被选中的页位置。

BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( );用于删除指定/所有页面。

void RemoveImage( int nImage );用于删除某页选择位置上的图标。

属性页控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn ),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处理函数,函数的原型如同void OnXXXTab(NMHDR* pNMHDR, LRESULT* pResult),其中pNMHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值和对应的数据结构为:

TCN_SELCHANGE 在当前页改变后发送,所用结构:NMHDR

TCN_SELCHANGING 在当前页改变时发送可以通过返回TRUE来禁止页面的改变,所用结构:NMHDR

一般来讲在当前页发生改变时需要隐藏当前的一些子窗口,并显示其它的子窗口。下面的伪代码演示了如何使用属性页控件:

CParentWnd::OnCreate(...)

{

m_tab.Create(...);

m_tab.InsertItem(0,"Option 1");

m_tab.InsertItem(1,"Option 2");

Create a edit box as the m_tab's Child

Create a static box as the m_tab's Child

edit_box.ShowWindow(SW_SHOW); // edit box在属性页的第一页

static_box.ShowWindow(SW_HIDE); // static box在属性页的第二页

}

void CParentWnd::OnSelectChangeTab(NMHDR* pNMHDR, LRESULT* pResult)

{//处理页选择改变后的消息

if(m_tab.GetCurSel()==0)

{//根据当前页显示/隐藏不同的子窗口

edit_box.ShowWindow(SW_SHOW);

static_box.ShowWindow(SW_HIDE);

}

else

{//

edit_box.ShowWindow(SW_HIDE);

static_box.ShowWindow(SW_SHOW);

}

}

D. 用VC++怎么做图形界面的软件

以下程序在VisualC++6.0测试通过,能够出现一个正规的Windows窗口


#pragma comment(linker,"/SUBSYSTEM:Windows /ENTRY:mainCRTStartup")
#include <windows.h>
/* 使类名成为全局变量 */
TCHAR szClassName[ ] = TEXT("WindowsApp");
/* 这个函数由Windows内部函数DispatchMessage()调用 */
LRESULT CALLBACK WindowProcere (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message) /* 处理信息 */
{
case WM_DESTROY:
PostQuitMessage (0); /* 发送WM_QUIT到消息队列 */
break;
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps) ;
GetClientRect (hWnd, &rect) ;
DrawText (hdc, TEXT("Hello, Windows NT!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hWnd, &ps) ;
break ;
default: /* 不处理的消息 */
return DefWindowProc (hWnd, message, wParam, lParam);
}
return 0;
}
/* 下面是主函数 */
int main ( void )
{
HINSTANCE hThisInstance = GetMoleHandle(NULL) ;
int nFunsterStil = SW_SHOW ;
HWND hWnd; /* 这是窗口的句柄 */
MSG messages;/* 应用程序的消息保存在这里 */
WNDCLASSEX wincl;/* 窗口类的数据结构 */
/* 窗口结构 */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcere;/* 这个函数由Windows操作系统调用 */
wincl.style = CS_DBLCLKS; /* 获取双击指令 */
wincl.cbSize = sizeof (WNDCLASSEX);
/* 使用默认图标和鼠标指针 */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* 没有菜单 */
wincl.cbClsExtra = 0;/* 窗口类后面没有多余的字节 */
wincl.cbWndExtra = 0;/* 结构或者窗口实例 */
/* 使用窗口的默认颜色作为窗口的背景色 */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
/* 注册窗口类。如果注册失败,那么就退出程序 */
if (!RegisterClassEx (&wincl))
return 0;
/* 窗口类已被注册。创建它的程序 */
hWnd = CreateWindowEx (
0,
szClassName, /* 类名 */
TEXT("Windows App"), /* 窗口标题栏的文字 */
WS_OVERLAPPEDWINDOW, /* 默认窗口 */
CW_USEDEFAULT, /* 窗口左上角的位置 */
CW_USEDEFAULT, /* 窗口右下角的位置 */
544, /* 窗口宽度(以“像素”位单位) */
375, /* 窗口高度(以“像素”位单位) */
HWND_DESKTOP,/* 窗口是桌面的子窗口 */
NULL,/* 该窗口无菜单 */
hThisInstance, /* 程序实例的句柄 */
NULL /* 没有窗口创建的数据 */
);
/* 显示窗口 */
ShowWindow (hWnd, nFunsterStil);
/* 重绘窗口 */
UpdateWindow(hWnd);
/* 运行消息循环。循环到GetMessage()函数返回0 */
while (GetMessage (&messages, NULL, 0, 0))
{
/* 把虚拟信息翻译成字符信息 */
TranslateMessage(&messages);
/* 发送信息到窗口过程 */
DispatchMessage(&messages);
}
/* 返回PostQuitMessage()函数的返回值 */
return messages.wParam;
}


运行结果如下:

E. 怎么用VC++编程完成计算机联锁站场图形界面显示

打开VC++6.0,界面如下,按左上角菜单栏的“文件”-->“新建”,打开如下界面在左边的列表中选择“Win32ConsoleApplication”,即win32控制台工程,控制台就类似windows中的cmd窗口,刚开始编程,选择创建这个工程就可以了。在右边输入工程名称,我在这里输入“FirstProgram”,位置选择一个存放该工程的文件夹,如果不放在默认的路径下,则点击右边的那个显示为“”的按钮,然后自定义选择路径,我选择的路径是F:\Cpp。然后点击确定,在接下来出现的对话框中选择“一个空工程”,点击完成即可,在后续的出现的窗口中点击“确定”。这个时候一个空工程就创建完成了,我们的源代码文件将包含在这个工程中。我们现在开始创建源代码文件,点击软件左上角的“文件”-->“新建”,然后出现刚才见到过的对话框,先选择上面标签中的“文件”,然后再选择下面列表中的“C++SourceFile”,文件名输入hello.cpp,然后点击“确定”。确定完后,右边的编辑区就会自动打开空白的hello.cpp文件,左边的工作区也可以看到整个工程的组织结构接下来我们写一个简单的程序,在屏幕上显示“helloworld!”,最经典的程序#includeusingnamespacestd;intmain(){cout<<"helloworld!\n";return0;}然后按编辑区上方的按钮进行编译、链接,然后执行,执行结果如下图所示,我们用vc++6.0写的一个小程序就执行成功了

F. vc++中MFC界面编程问题

编辑框可以这样做,没问题。

CStringstr;
GetDlgItem(IDC_EDIT1)->GetWindowText(str);//这就取得了编辑框的内容

关键是你的汉字和英文,与十六进制是怎么转换的,这个是算法问题。

G. VC++中 MFC 和 界面编程

首先windows创建窗口等界面一般都利用提供的api也就是放在系统动态连接库dll中的函数,
也就相当于windows的库函数,不过这种编程方式要做的工作实在太多,所以微软开发了mfc基础类库
把大部分api包装到了类里面,以便使用.虽然也有其他的类库,在vc还是用mfc编程的比较广泛
而vs.net和之后的版本 都已经有了开发窗体应用程序的方法 这和以前vb6\delphi\c++builder等等
一样的窗体开发模式,建立图形界面比以前更方便还可以利用更多的功能

H. 求c语言在vc环境下编程的界面实例

这只是核心代码,实现把一个图片分成9快打乱拼图功能
里面有不少系统自动生成的代码
看你会不会用了
假设你已经会创建Windows项目,我就不多说了
如果要成功运行
你需要准备一个bmp文件,改名为00.bmp
和这个文件放同目录
如果你还不能成功运行
我只能把整个项目打包给你了o(>﹏<)o
如有疑问,email到[email protected]
但不保证能及时回复
//
拼图.cpp
:
定义应用程序的入口点。
//
#include
"stdafx.h"
#include
"拼图.h"
#include
"time.h"
#define
MAX_LOADSTRING
100
//
全局变量:
HINSTANCE
hInst;
//
当前实例
TCHAR
szTitle[MAX_LOADSTRING];
//
标题栏文本
TCHAR
szWindowClass[MAX_LOADSTRING];//
主窗口类名
int
bmp[3][3]={0};
HDC
hdcBmp;
POINT
old={-1,-1};
int
num[9]={9,8,7,6,5,4,3,2,1};
//
此代码模块中包含的函数的前向声明:
ATOM
MyRegisterClass(HINSTANCE
hInstance);
BOOL
InitInstance(HINSTANCE,
int);
LRESULT
CALLBACK
WndProc(HWND,
UINT,
WPARAM,
LPARAM);
LRESULT
CALLBACK
About(HWND,
UINT,
WPARAM,
LPARAM);
int
APIENTRY
_tWinMain(HINSTANCE
hInstance,
HINSTANCE
hPrevInstance,
LPTSTR
lpCmdLine,
int
nCmdShow)
{
//
TODO:
在此放置代码。
MSG
msg;
HACCEL
hAccelTable;
//
初始化全局字符串
LoadString(hInstance,
IDS_APP_TITLE,
szTitle,
MAX_LOADSTRING);
LoadString(hInstance,
IDC_MY,
szWindowClass,
MAX_LOADSTRING);
MyRegisterClass(hInstance);
//
执行应用程序初始化:
if
(!InitInstance
(hInstance,
nCmdShow))
{
return
FALSE;
}
hAccelTable
=
LoadAccelerators(hInstance,
(LPCTSTR)IDC_MY);
//
主消息循环:
while
(GetMessage(&msg,
NULL,
0,
0))
{
if
(!TranslateAccelerator(msg.hwnd,
hAccelTable,
&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return
(int)
msg.wParam;
}
//
//
函数:
MyRegisterClass()
//
//
目的:
注册窗口类。
//
//
注释:
//
//
仅当希望在已添加到
Windows
95

//
“RegisterClassEx”函数之前此代码与
Win32
系统兼容时,
//
才需要此函数及其用法。调用此函数
//
十分重要,这样应用程序就可以获得关联的
//
“格式正确的”小图标。
//
ATOM
MyRegisterClass(HINSTANCE
hInstance)
{
WNDCLASSEX
wcex;
wcex.cbSize
=
sizeof(WNDCLASSEX);
wcex.style
=
CS_HREDRAW
|
CS_VREDRAW;
wcex.lpfnWndProc
=
(WNDPROC)WndProc;
wcex.cbClsExtra
=
0;
wcex.cbWndExtra
=
0;
wcex.hInstance
=
hInstance;
wcex.hIcon
=
LoadIcon(hInstance,
(LPCTSTR)IDI_MY);
wcex.hCursor
=
LoadCursor(NULL,
IDC_ARROW);
wcex.hbrBackground
=
(HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName
=
(LPCTSTR)IDC_MY;
wcex.lpszClassName
=
szWindowClass;
wcex.hIconSm
=
LoadIcon(wcex.hInstance,
(LPCTSTR)IDI_SMALL);
return
RegisterClassEx(&wcex);
}
//
//
函数:
InitInstance(HANDLE,
int)
//
//
目的:
保存实例句柄并创建主窗口
//
//
注释:
//
//
在此函数中,我们在全局变量中保存实例句柄并
//
创建和显示主程序窗口。
//
BOOL
InitInstance(HINSTANCE
hInstance,
int
nCmdShow)
{
HWND
hWnd;
hInst
=
hInstance;
//
将实例句柄存储在全局变量中
hWnd
=
CreateWindow(szWindowClass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
if
(!hWnd)
{
return
FALSE;
}
ShowWindow(hWnd,
nCmdShow);
UpdateWindow(hWnd);
return
TRUE;
}
void
LoadingImage(HDC
hdc)
{
HBITMAP
hBmp
=
(HBITMAP)LoadImage(NULL,"00.bmp",IMAGE_BITMAP,300,300,LR_LOADFROMFILE
);
hdcBmp
=
CreateCompatibleDC(hdc);
DeleteObject(SelectObject(hdcBmp,hBmp));
}
void
DrawBmp(HDC
hdc)
{
for(int
i=0;i<3;i++)
for(int
j=0;j<3;j++)
BitBlt(hdc,i*100,j*100,100,100,hdcBmp,(bmp[j][i]-1)%3*100,(bmp[j][i]-1)/3*100,SRCCOPY);
}
void
random()
{
int
i,j;
srand((unsigned)time(NULL));
for(i=0;i<3;i++)
for(j=0;j<3;j++)
while(true)
{
int
t=rand()%9;
if
(num[t])
{
bmp[j][i]=num[t];
num[t]=0;
break;
}
}
}
//
//
函数:
WndProc(HWND,
unsigned,
WORD,
LONG)
//
//
目的:
处理主窗口的消息。
//
//
WM_COMMAND
-
处理应用程序菜单
//
WM_PAINT
-
绘制主窗口
//
WM_DESTROY
-
发送退出消息并返回
//
//
LRESULT
CALLBACK
WndProc(HWND
hWnd,
UINT
message,
WPARAM
wParam,
LPARAM
lParam)
{
int
wmId,
wmEvent,i,j,x,y,t;
PAINTSTRUCT
ps;
HDC
hdc;
//HBITMAP
hBmp;
switch
(message)
{
case
WM_CREATE:
random();
hdc
=
GetDC(hWnd);
LoadingImage(hdc);
ReleaseDC(hWnd,hdc);
break;
case
WM_LBUTTONDOWN:
x
=LOWORD(lParam)/100;
y
=HIWORD(lParam)/100;
if
(old.x==-1)
{
old.x=y;
old.y=x;
}
else
{
t=bmp[old.x][old.y];
bmp[old.x][old.y]
=
bmp[y][x];
bmp[y][x]
=
t;
old.x=-1;
old.y=-1;
}
hdc=GetDC(hWnd);
DrawBmp(hdc);
ReleaseDC(hWnd,hdc);
break;
case
WM_COMMAND:
wmId
=
LOWORD(wParam);
wmEvent
=
HIWORD(wParam);
//
分析菜单选择:
switch
(wmId)
{
case
IDM_ABOUT:
DialogBox(hInst,
(LPCTSTR)IDD_ABOUTBOX,
hWnd,
(DLGPROC)About);
break;
case
IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return
DefWindowProc(hWnd,
message,
wParam,
lParam);
}
break;
case
WM_PAINT:
hdc
=
BeginPaint(hWnd,
&ps);
//
TODO:
在此添加任意绘图代码...
DrawBmp(hdc);
EndPaint(hWnd,
&ps);
break;
case
WM_DESTROY:
PostQuitMessage(0);
break;
default:
return
DefWindowProc(hWnd,
message,
wParam,
lParam);
}
return
0;
}
//
“关于”框的消息处理程序。
LRESULT
CALLBACK
About(HWND
hDlg,
UINT
message,
WPARAM
wParam,
LPARAM
lParam)
{
switch
(message)
{
case
WM_INITDIALOG:
return
TRUE;
case
WM_COMMAND:
if
(LOWORD(wParam)
==
IDOK
||
LOWORD(wParam)
==
IDCANCEL)
{
EndDialog(hDlg,
LOWORD(wParam));
return
TRUE;
}
break;
}
return
FALSE;
}

I. VC界面编程

用srand(rand())播种
用rand()获得随机数
假如你要显示在CEDIT框内,将这个控件关联一个变量如:m_num(int型)
按钮的触发下面的
{
srand(rand());
m_num=rand()%x+y;//随机数的范围为[y,x+y-1]
UpdateData(FALSE);
}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:646
制作脚本网站 发布:2025-10-20 08:17:34 浏览:937
python中的init方法 发布:2025-10-20 08:17:33 浏览:633
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:822
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:732
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1067
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:300
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:161
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:853
python股票数据获取 发布:2025-10-20 07:39:44 浏览:764