當前位置:首頁 » 編程語言 » c語言窗體程序

c語言窗體程序

發布時間: 2022-11-05 20:50:11

⑴ 如何用c語言開發窗體應用程序。。

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
#include <windows.h>

//Function prototype.
int WINAPI WinMain(HINSTANCE,HINSTANCE ,LPSTR ,int);
LRESULT CALLBACK MainWndProc(HWND ,UINT ,WPARAM,LPARAM);

InitApplication(HINSTANCE);
InitInstance(HINSTANCE,int);

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT nMsg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;

switch(nMsg)
{
case WM_COMMAND:
{
hdc = GetDC((HWND)lParam);
GetClientRect ((HWND)lParam, &rect) ;
DrawText(hdc,"HOHO",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
ReleaseDC((HWND)lParam,hdc);
}
break;
case WM_PAINT:
{
hdc = BeginPaint(hwnd,&ps);
GetClientRect (hwnd, &rect) ;
DrawText(hdc,"Hello Word",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd,&ps);
}
break;
//按鍵
case WM_KEYDOWN:

if(wParam == VK_ESCAPE)
SendMessage(hwnd,WM_CLOSE,0,0);

break;
case WM_CHAR:
switch(wParam)
{
case 'w':
MessageBox(hwnd,"UP","KeyBorad Input",MB_OK);
break;
case 's':
MessageBox(hwnd,"DOWN","KeyBorad Input",MB_OK);
break;
case 'a':
MessageBox(hwnd,"LEFT","KeyBorad Input",MB_OK);
break;
case 'd':
MessageBox(hwnd,"RIGHT","KeyBorad Input",MB_OK);
break;
}
break;

//關閉
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;

default:
return DefWindowProc(hwnd,nMsg,wParam,lParam);
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInStance,
LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;

if(!InitApplication(hInstance))
{
MessageBox(NULL,"InitApplication Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}
if(!InitInstance(hInstance,nCmdShow)){
MessageBox(NULL,"InitInstance Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}

while(GetMessage(&msg,(HWND) NULL,0,0)>0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

InitApplication(HINSTANCE hInstance)
{
WNDCLASS wc;

wc.style = CS_DBLCLKS;
wc.lpfnWndProc = MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MainWClass";
return RegisterClass(&wc);
}

InitInstance(HINSTANCE hInstance,int nCmdShow){
HWND hwnd;
HWND hwndCloseButton;
hwnd = CreateWindow(
"MainWClass",
"Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
(HWND)NULL,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);

if(!hwnd)
return FALSE;

hwndCloseButton = CreateWindow(
"BUTTON",
"CLOSE",
WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
100,
100,
100,
80,
hwnd,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);

if(!hwndCloseButton)
return FALSE;

ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}

⑵ 如何用VC++6.0創建windows窗口程序

1、啟動vc++6.0。
2、在文件菜單里單擊新建。
3、在彈出的窗口裡單擊MFC AppWizard (exe)。
4、在右邊的工程名稱里輸入程序名,例如firstc。
5、單擊確定,在彈出的窗體里選擇基本對話框,單擊完成,單擊確定。
6、這時已經生成了一個窗體,兩個按鈕的窗口程序,可以運行。
7、在這個窗體上繼續添加添加需要的控制,並添加相應的代碼,就可以建立自己想要的窗體程序了。

⑶ 用c語言怎麼創建一個窗口

通過調用windowsAPI來創建窗口:
#include<windows.h>
intmain()
{
MessageBox(NULL,"HelloWorld!","C圖形程序",MB_OK);
return0;
}
這個是最簡單的了
至於MFCQT什麼的代碼太多了

⑷ 用vc6.0怎麼編譯c++ 窗體程序

具體步驟如下:

打開vc++,點擊「文件」,點擊「新建」,這時會出現一個框,點擊框上的「文件」,然後點擊「c++
suorce
file」,然後在「文件名」下面的輸入框輸入你的文件名稱,如:文件.c/文件.cpp(c語言後綴用.c,c++語言後綴用.cpp),然後在「位置」下的輸入框選擇你想把文件放的位置,然後點擊「確定」就進入了代碼編輯界面,寫入你的代碼,然後按「ctrl+s」進行保存,然後按「f7」進行編譯(按下f7會出現幾個對話框,點擊「是」),如果系統在最下面的對話框提示沒有錯誤(顯示為「***
.exe
-
0
error(s),
0
warning(s)」,其中***代表你的文件名),按「ctrl+f5」就能運行你寫的程序了。

如系統提示有錯誤,系統會在最下面的那個框進行提示(點擊該框,滑動滑鼠滑輪可以看提示的詳細信息),根據提示修改代碼後重新保存,重新編譯,直到沒有錯誤(顯示為「***
.exe
-
0
error(s),
0
warning(s)」,其中***代表你的文件名),才能進行運行,否則運行不了。

⑸ 如何用純C語言寫窗體程序

請在提問之前,搜索一下以前的回答!這個問題已經被問過多次了!

以下程序在C++BUILDER中測試通過。

//---------------------------------------------------------------------------

#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
static TCHAR szAppName[]=TEXT("HWCPcn");
static TCHAR szClassName[]=TEXT("HWICPcn");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style=CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc =WndProc;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hInstance =hInstance;
wndclass.hIcon =LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName =szClassName;
if (!RegisterClass(&wndclass)) {
MessageBox(NULL,TEXT("wiki.cprogram.cn"),szAppName,MB_ICONINFORMATION);
return 0;
}
hwnd=CreateWindow(szClassName,TEXT("THE C PROGRAM"), WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam ;
}
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("www.CPROGRAM.CN"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&ps);
return 0;
case WM_CREATE:
MessageBox(NULL,"Hello","Cprogram.cn",MB_OK);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
//---------------------------------------------------------------------------

⑹ 如何用C語言編寫一個窗體應用程序

最好不要,稍微麻煩一點的窗體程序你就搞不定,而且資料非常少
比較合算的應該是C#的WPF, VC的MFC,都不是C語言的

⑺ C語言如何創建窗口

windows下通過調用API來創建窗口:
#include<windows.h>
int main()
{
MessageBox(NULL,"Hello World!","C圖形程序",MB_OK);
return 0;
}
linux下通過調用圖形庫來創建窗口。
樓主如果是學C的話,先不要急於搞這些東西,把基礎打扎實才是最重要的,GUI可以後學。基礎扎實了,這些只是很簡單的東西。

⑻ C語言 控制台程序

不想調用控制台入口換winmain
底層的編譯,在編譯成目標文件之後,不要鏈接成可執行文件,生成別的
二進制文件
或者。。像
Linux內核
一樣,編譯成可執行文件,裝載入內存,然後用內存鏡像拷貝出純二進制文件。。等等方法
至於編譯驅動有另外更加專業的方法咯。。

⑼ 用C語言編寫windows窗體程序,怎麼創建按鈕以及怎麼添加按鈕的觸發事件啊

Windows
窗體程序是基於消息機制的,所有控制項,它的本質都是一個窗體,都是使用
CreateWindows
函數來創建,不過類名,則需要指定為系統預先注冊的控制項類,比如,你要創建一個按鈕控制項,就要這樣子
CreateWindows(
"BUTTON",
"按鈕標題"
),CreateWindows
這個函數你應該用了不少了吧,其餘的參數可以參考
MSDN,但是類名我們指定了
「BUTTON」,說明我們要創建一個按鈕,每個按鈕都有一個唯一的
ID,通過你的消息處理函數,可以知道哪個按鈕發生了什麼事件,詳細講的話,非常多,你可以參考
MSDN,或者《Windows
程序設計》這本書

⑽ 怎麼用c語言寫窗體程序

步驟:
1、注冊窗口類;
2、創建窗體;
3、消息循環;
4、編寫窗口消息處理函數。

代碼:


#include<windows.h>
#include<tchar.h>
LRESULTCALLBACKWindowProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam);
intWINAPI_tWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPWSTRszCmdLine,intnCmdShow)
{
WNDCLASSwc;
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=WindowProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=NULL;
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)COLOR_WINDOW;//(HBRUSH)GetStockObject();
wc.lpszMenuName=NULL;
wc.lpszClassName=_T("MyWindowClass");
if(!RegisterClass(&wc))
{
MessageBox(NULL,_T("無法注冊窗口類"),_T("錯誤"),MB_OK);
return0;
}
HWNDnewWindow=CreateWindow(
_T("MyWindowClass"),
_T("我的第一個winapi程序"),
WS_OVERLAPPEDWINDOW,
0,
0,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if(NULL==newWindow)
{
MessageBox(NULL,_T("無法創建窗體"),_T("錯誤"),MB_OK);
return0;
}
ShowWindow(newWindow,nCmdShow);
UpdateWindow(newWindow);
MSGmsg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
LRESULTCALLBACKWindowProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam)
{
switch(uMsg)
{
caseWM_DESTROY:
{
PostQuitMessage(0);
break;
}
default:
returnDefWindowProc(hwnd,uMsg,wParam,lParam);
}
return0;
}

就是一個只有標題欄、關閉按鈕、最小化按鈕、最大化/還原按鈕、顯示區域的窗體。

熱點內容
vc60非靜態編譯 發布:2025-01-11 10:51:32 瀏覽:614
電腦上怎麼解壓縮文件 發布:2025-01-11 10:51:31 瀏覽:782
槍戰王者如何用賬號密碼登錄 發布:2025-01-11 10:30:56 瀏覽:936
mysql在linux下安裝 發布:2025-01-11 10:30:49 瀏覽:843
資料庫copy 發布:2025-01-11 10:26:06 瀏覽:533
unity清理緩存 發布:2025-01-11 10:25:23 瀏覽:466
優酷視頻雙擊上傳 發布:2025-01-11 10:24:41 瀏覽:963
存儲臍帶胎兒幹細胞 發布:2025-01-11 10:18:36 瀏覽:330
實簡ftp軟體怎麼改伺服器文件 發布:2025-01-11 10:09:39 瀏覽:555
qb充值源碼 發布:2025-01-11 10:00:21 瀏覽:27