按鈕c語言
Ⅰ c語言鍵盤按鍵觸發怎麼表示
可以用FlexibleButton表示。
FlexibleButton 是一個基於標准 C 語言的小巧靈活的按鍵處理庫,支持單擊、連擊、短按、長按、自動消抖,可以自由設置組合按鍵,可用於中斷和低功耗場景。
該按鍵庫解耦了具體的按鍵硬體結構,理論上支持輕觸按鍵與自鎖按鍵,並可以無限擴展按鍵數量。另外,FlexibleButton 使用掃描的方式一次性讀取所有所有的按鍵狀態,然後通過事件回調機制上報按鍵事件。
核心的按鍵掃描代碼僅有三行,沒錯,就是經典的 三行按鍵掃描演算法。使用 C 語言標准庫 API 編寫,也使得該按鍵庫可以無縫兼容任意的處理器平台,並且支持任意 OS 和 non-OS(裸機編程)。
快速體驗:
FlexibleButton 庫中提供了一個測試常式 ./examples/demo_rtt_iotboard.c,該常式基於 RT-Thread OS 進行測試,硬體平台選擇了 RT-Thread IoT Board Pandora v2.51 開發板。
當然你可以選擇使用其他的 OS,或者使用裸機測試,只需要移除 OS 相關的特性即可。
如果你使用自己的硬體平台,只需要將 FlexibleButton 庫源碼和常式加入你既有的工程下即可。
DEMO 程序說明:
該示常式序可以直接在 RT-Thread stm32l475-atk-pandora BSP 中運行,可以在該 BSP 目錄下,使用 menuconfig 獲取本軟體包。
Ⅱ 單片機 用C語言怎麼編寫用一個按鈕,控制一盞燈的亮與滅的程序
讀取連接按鍵的IO口,判斷是否為低電平,如果是,延時(十毫秒左右可以),再次讀取IO口,判斷是否為低電平,如果是則表示有有效的按鍵按下,接著用while判斷等待按鍵釋放,然後讓連接led的IO口電平取反以控制其亮滅(是強電的燈可以通過此處控制繼電器的合、閉來控制燈的亮滅)。參考程序:if(key==0){delayms(10);if(key==10){while(key==0);//等待按鍵釋放,IO口恢復高電平led=!led;//按鍵控製程序}}
Ⅲ C語言 按鈕
響應按鈕的點擊消息 在這個消息下面寫對應的代碼。C語言的話 如果是直接使用API的話 需要調用CreateWindow 創建button。|
推薦你看下 windows程序設計第五版
Ⅳ c語言如何創建一個按鈕做計算器用
這是一個簡單計算器程序:
1)創建一個對話框的應用
2)向對話框中添加一個編輯框控制項和十六個按鈕
3)在頭文件聲明:
double m_Num; //記錄編輯框中的數據
BOOL m_Time; //判斷是否為第一次按下數字鍵
char m_Operator; //保存運算符
4)處理數字「1」按鈕的單擊事件將按鈕代表的數字寫入編輯框中,代碼:
void CCalculatorDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_Time == TRUE)
{
m_Result = 0;
}
m_Result = m_Result * 10 + 1;
m_Time = FALSE;
UpdateData(FALSE);
}
5)按照步驟4設置其他的數字按鈕的單擊事件
6)添加Count函數,用於計算數據,代碼如下:
void CCalculatorDlg::Count()
{
UpdateData(TRUE);
switch(m_Operator)
{
case '+':
m_Num += m_Result;
break;
case '-':
m_Num -= m_Result;
break;
case '*':
m_Num *= m_Result;
break;
case '/':
if(m_Result == 0)
{
MessageBox("除數不能為0");
return;
}
m_Num /= m_Result;
break;
default:
m_Num = m_Result;
break;
}
m_Result = m_Num;
m_Time = TRUE;
UpdateData(FALSE);
}
7)處理「+」,為m_Operator變數賦值。代碼:
void CCalculatorDlg::OnButton13()
{
// TODO: Add your control notification handler code here
if(m_Time == FALSE)
{
Count();
}
m_Operator = '+';
}
8)按照步驟7設置其他符號按鈕的單擊事件
9)處理「C」按鈕的單擊事件,用於清空編輯框中的數據,代碼
void CCalculatorDlg::OnButton11()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_Result = 0;
m_Num = 0;
m_Time = TRUE;
m_Operator = ' ';
UpdateData(FALSE);
}
以上運行結果正常,不過結果貼不上來啊,就靠自己了啊
Ⅳ 如何用C語言寫一個button按鈕
#include <windows.h>
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 = 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;
}
}
bool WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
return MoRenChuLi(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語言如何檢測點擊的按鈕
通常很多情況下,會有這樣的事情,就是:
我們在運行某些程序的時候,發現按鈕置灰了,比如購買版權或者輸入序列號才能夠獲得訪問許可權。某個按鈕才允許點擊。
其實所有的這些東西都是 別的人或者公司利用一些編程語言調用windows的函數,實現的。所以如果我們也能調用windows的函數,那麼我們就能夠執行一些按鈕或者某些東西背後的函數。
自己的mfc還暫時 用不了,不過 可以 試試這個。
調出這個界面,看到有一個置灰的設置按鈕。我們可以試著調用這個後面的函數。
/*如何調出來?【在win7環境下】
打開控制面板
點擊滑鼠。*/
然後利用vs的工具中的spy++ x64。
進入查找窗口。
拖住這個到剛剛滑鼠的那個置灰的按鈕上面。就可以得到一個句柄。
句柄【在我理解,就是一個話把子,怎麼解釋,就是,別人說一件事兒,你得順著往下說才能把話接下來,然後完成你想說的東西。在程序裡面,執行到這里,有這樣一個句柄,允許我們說話了,我們就從這一點開始,順著往下說,往往就能得到我們想要的結果】
所以得到了句柄之後。我們可以新建一個工程。
#include <windows.h>
int main(){
SendMessage(0x001607E6,WM_LBUTTONDOWN,0,0);
SendMessage(0x001607E6,WM_LBUTTONUP,0,0);
return 0;
}
//在HWND的第一個參數裡面輸入剛剛的句柄。
//猜測 第二個參數 是 WindowManager_LeftButtonDown,就是窗口管理器左鍵按鈕點下。
//然後左鍵按鈕彈起。
就強制的往剛剛不能執行的函數裡面發送了一個信息。前面的引文介紹說,這就是調用了windows底層的一些函數,如果按鈕可以點擊,則滑鼠點擊,按鈕按下,當需要注冊的時候,或者需要序列號的時候我們並沒有,就不能點擊。但是當我們給他發送一條消息以後,是不是問題就解決了。