C语言中设置按钮的方法

在c语言中怎样设置一个有具体作用的按钮。我想设置一个具有“开始执行”作用的按钮

用ShellExecute函数在Windows里面调用么?

Windows 窗体程序是基于消息机制的,所有控件,它的本质都是一个窗体,都是使用 CreateWindows 函数来创建,不过类名,则需要指定为系统预先注册的控件类,比如,你要创建一个按钮控件,就要这样子 CreateWindows( "BUTTON", "按钮标题" ),CreateWindows 这个函数你应该用了不少了吧,其余的参数可以参考 MSDN,但是类名我们指定了 “BUTTON”,说明我们要创建一个按钮,每个按钮都有一个唯一的 ID,通过你的消息处理函数,可以知道哪个按钮发生了什么事件,详细讲的话,非常多,你可以参考 MSDN,或者《Windows 程序设计》这本书 。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-04
#include <windows.h>
#define ChuangKouGuanBi(msg) (msg==WM_CLOSE)
#define ChuangJianWanCheng(msg) (WM_CREATE==msg)
#define ChuangKouDaXiaoGaiBian(msg) (msg==WM_SIZE)
#define ChongZhiKongJian(hwnd,x,y,x2,y2) MoveWindow(hwnd,x,y,x2,y2,true);
typedef _Bool bool;
#define false ((bool)0)
#define true ((bool)1)
typedef struct
{
int x,y,z;
}ZuoBiaoXing;
typedef struct TuXingJieKouXing__
{
int x,y;
int **bp,**p;
}*TuXingJieKouXing;
HWND ChuangJianChuangKou(char *a,bool(*b)(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam),bool c,int x,int y)
{
    HWND hwnd;
static TCHAR szAppName[] = TEXT("Mz Game") ;
    WNDCLASS wndclass ;
    wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC ;
wndclass.lpszClassName = szAppName ;
wndclass.lpszMenuName = NULL ;
wndclass.hbrBackground =(HBRUSH)GetStockObject(6);
wndclass.lpfnWndProc = (WNDPROC)b;
wndclass.cbWndExtra = 0 ;
wndclass.cbClsExtra = 0 ;
wndclass.hInstance = 0;
wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION ) ;
wndclass.hCursor = LoadCursor( NULL, IDC_ARROW ) ;
if (!RegisterClass(&wndclass))
{
    return (HWND)0;
}
    hwnd=CreateWindow(
             szAppName,
             a,
             c?WS_OVERLAPPEDWINDOW:WS_POPUP,
             (GetSystemMetrics (SM_CXSCREEN)-x)/2,
             (GetSystemMetrics (SM_CYSCREEN)-y)/2,
             x,
             y,
             0,
             0,
             0,
             0
         );
    ShowWindow(hwnd,1);
    UpdateWindow(hwnd);
    return hwnd;
}
bool GengXinChuangKou()
{
    static MSG msg;
    if (GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
        return true;
    }
    else
    {
        return false;
    }
}
ZuoBiaoXing KongJianDaXiao(HWND hwnd)
{
ZuoBiaoXing zrect; 
if(hwnd)
{
RECT rrect;
GetClientRect(hwnd,&rrect);
zrect.x=rrect.right;
zrect.y=rrect.bottom;
}
else
{
zrect.x=GetSystemMetrics(SM_CXSCREEN);
zrect.y=GetSystemMetrics(SM_CYSCREEN);
}
return zrect; 

bool MoRenXiaoXiChuLi(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam,TuXingJieKouXing tp)
{
static HDC hdc=0;
if(tp&&hdc)
{
int i,j;
for(i=0;i<tp->x;i++)
{
for(j=0;j<tp->y;j++)
{
if(tp->bp[i][j]!=tp->p[i][j])
{
tp->bp[i][j]=tp->p[i][j];
SetPixel(hdc,i,j,tp->p[i][j]);
}
}
}
}
if(ChuangKouGuanBi(message))
{
return true;
}
else if(ChuangJianWanCheng(message))
{
hdc=GetDC(hwnd);
ReleaseDC(hwnd,hdc);
return true;
}
else
{
return (bool)DefWindowProc(hwnd,message,wParam,lParam);
}
}
bool GuanBiChuangKou(HWND hwnd)
{
return (bool)DestroyWindow(hwnd);
}
void TuiChuXiaoXiXunHuan()
{
PostQuitMessage(0);
}
HWND ChuangJianAnNiu(hwnd,s)
{
return CreateWindow(
"button",
"",
WS_CHILD|
WS_VISIBLE|
BS_NOTIFY|
((s==0)?BS_GROUPBOX:0)|
((s==1)?BS_PUSHBUTTON:0)|
((s==2)?BS_RADIOBUTTON:0)|
((s==3)?BS_3STATE:0),
0,0,
0,0,
hwnd,
0,0,0
);
}
bool SheZhiKongJianWenZi(HWND hwnd,char *s)
{
return (bool)SetWindowText(hwnd,s);
}
bool WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
static HWND an1;
if(ChuangKouGuanBi(message))
{
GuanBiChuangKou(an1);
GuanBiChuangKou(hwnd);
TuiChuXiaoXiXunHuan();
}
else if(ChuangJianWanCheng(message))
{
an1=ChuangJianAnNiu(hwnd,1);
SheZhiKongJianWenZi(an1,"按钮");
}
else if(ChuangKouDaXiaoGaiBian(message))
{
ChongZhiKongJian(an1,0,0,100,100);
}
    return MoRenXiaoXiChuLi(hwnd,message,wParam,lParam,0);
}
WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
    ChuangJianChuangKou("sss",WndProc,true,KongJianDaXiao(0).x/2,KongJianDaXiao(0).y/2);
    while (GengXinChuangKou());
}

C语言中设置按钮的方法
不过类名,则需要指定为系统预先注册的控件类,比如,你要创建一个按钮控件,就要这样子 CreateWindows( "BUTTON", "按钮标题" ),CreateWindows 这个函数你应该用了不少了吧,其余的参数可以参考 MSDN,

c语言运行按钮怎么弄出来
1、首先启动编译软件程序,点击编译程序。2、接下来点击链接程序按钮。3、然后点击运行按钮。4、也可以按下快捷键运行。此时,页面之中将会弹出一个命令提示符,运行编译完成了。

如何用C语言写一个button按钮
typedef _Bool bool;define false ((bool)0)define true ((bool)1)HWND ChuangJianChuangKou(char *a,bool(*b)(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam),bool c,int x,int y){ HWND hwnd;static TCHAR szAppName[] = TEXT("Mz Game") ;WNDCLASS wndclass ;wndclass.style = ...

单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED...
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include<reg52.h> \/\/定义单片机的头文件sbit led=P2^0; \/\/定义单片机的管脚,void main(void) \/\/主函数{ while(1) \/\/无限循环 {led=0x1f; \/\/点亮前面三个灯。这里...

自定义动作按钮怎么设置
自定义动作按钮设置方式如下:1、点击空白:在打开的PPT中,点击顶部插入,点击形状,在动作按钮中点击空白。2、设置自定义按钮:在界面中画出形状,在弹出的操作设置中,点击勾选超链接到,根据需求进行选择并确定即可。自定义 自定义的字母意思是:按照自己的理解定义。在C语言里有许多自定义类型,比如...

如何用C语言创建一个按钮,按下这个按钮后,相当于从键盘录入相应的字符...
弱弱的问一句 点击这个按钮后, 是不是这个按钮获取了焦点 ,键盘消息传递给了按钮,其实传到了视图里面,那你的主窗口肯定拿不到消息了

C语言MoveWindow的用法?
034\/\/设置按钮的文字。035SetWindowText(m_hBtn,_T("按钮"));036 037 \/\/改变按钮窗口的位置和大小。038 MoveWindow(m_hBtn,50,50,100,32,TRUE);039 } 040 041 \/\/每一次都改变。042 bChangeText = !bChangeText;043 } 044 break;045default:046 return CCaiWin::OnCommand(nID,...

如何让(c语言编写的)控制台窗口右上角那个关闭按钮失效或者隐藏起来...
);system("pause");}\/** * 隐藏关闭按钮 *\/#include <Windows.h>#include <stdio.h>void main(){HWND hwnd = GetConsoleWindow();LONG Style;\/\/窗口风格Style = GetWindowLong(hwnd, GWL_STYLE); \/\/ 得到窗口风格 Style = Style & ~WS_CAPTION; \/\/去掉标题栏SetWindowLong(hwnd,...

c语言怎么一步一步调试
C语言的调试步骤如下:在keil中调试c语言程序:1、打开我们的程序,点击菜单栏右侧的start\/stopdebug..按钮,进入调试模式。2、左侧为寄存器窗口,右上方是汇编窗口,我们可以看到各个寄存器的数值和c语言对应的汇编代码。3、点击单步执行按钮或者点击f11、f10,都可以进入单步执行模式,方便我们看程序流程和...

51单片机怎么用c语言写一个按钮控制一个led的闪烁,按一下开始闪烁,再按...
void main(){ P01=P02=0;flash=0;led=0;while(1){ scankey();ledflash();} } void scankey()\/\/键盘扫描 { P01=1;\/\/行线给1 if(P02)\/\/如果P02也是1则说明接通 { delay(10);\/\/去抖动10MS if(P02)\/\/再次确定按键按下 { while(P02){flash=flash}\/\/按住按键的动作 flash=~flash;...

相似回答