導航:首頁 > 軟體知識 > c怎麼寫出有界面的程序

c怎麼寫出有界面的程序

發布時間:2023-06-01 19:24:55

A. 編寫完成了一個C/C++程序,如何做一個界面出來

最簡單的方法是用vc6新建一個Win32 Application空工程,然後添加一個cpp文件,輸入
(注意添加對話框資源,並且在對話框上添加一個文本框)
#include <Windows.h>
#include "resource.h"

// DialogProc, 枚舉窗口對話框過程.
int CALLBACK DialogProc( HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam){
switch(uMsg){
case WM_INITDIALOG:{
SendDlgItemMessage(hdlg,IDC_EDIT1,EM_REPLACESEL,0,(long)"文本......");
}break;

case WM_DESTROY: break;
case WM_COMMAND:
switch(LOWORD(wParam)){
case IDCANCEL:
case IDOK:{
// DestroyWindow(hdlg);
EndDialog(hdlg,0);
} break;

default: break; // switch(LOWORD(wParam))} break; // case WM_COMMAND:
} // switch(uMsg)
return false;}

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE,LPSTR,int){
// HWND hDialog=CreateDialog(hInst,(LPCTSTR)IDD_DIALOG1,0L,DialogProc);
return DialogBox(hInst,(LPCTSTR)IDD_DIALOG1,0L,DialogProc);}

B. 如何用C語言編程出可視化界面

//調用api函數創建窗口

//示例:

#include <windows.h>


LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口過程函數


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[] = TEXT("MyWindows");//定義窗口類名

HWND hwnd;//窗口句柄

MSG msg; //

WNDCLASS wndclass; //窗口類


wndclass.style = CS_HREDRAW | CS_VREDRAW;//指定窗口類型,各種「類風格」(詳見下方↓)可以使用按位或操作符組合起來

wndclass.lpfnWndProc = WndProc;//指定窗口過程(必須是回調函數)

wndclass.cbClsExtra = 0;//預留的額外空間,一般為 0

wndclass.cbWndExtra = 0;//預留的額外空間,一般為 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 = szAppName;//指定窗口類名


if (!RegisterClass(&wndclass))//注冊窗口

{

MessageBox(NULL, TEXT("這個程序需要在 Windows NT 才能執行!"), szAppName, MB_ICONERROR);

return 0;

}


hwnd = CreateWindow(szAppName, //創建窗口

TEXT("windows"),

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

NULL,

NULL,

hInstance,

NULL);


ShowWindow(hwnd, iCmdShow); //顯示窗口

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("第一個C語言窗口程序!"), -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);

}

C. c語言 怎麼做圖形界面的程序

這是最簡單的界面程序://c++.cpp:定義應用程序的入口點。

//

#include"stdafx.h"

#include"c++.h"

#defineMAX_LOADSTRING100

//全局變數:

HINSTANCEhInst; //當前實例

TCHARszTitle[MAX_LOADSTRING]; //標題欄文本

TCHARszWindowClass[MAX_LOADSTRING]; //主窗口類名

//此代碼模塊中包含的函蠢沒沒數的前向聲明:

ATOM MyRegisterClass(HINSTANCEhInstance);

BOOL InitInstance(HINSTANCE,int);

LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

INT_PTRCALLBACK About(HWND,UINT,WPARAM,LPARAM);

intAPIENTRY_tWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

察中LPTSTRlpCmdLine,

intnCmdShow)

{

UNREFERENCED_PARAMETER(hPrevInstance);

UNREFERENCED_PARAMETER(lpCmdLine);

//TODO:在此放置代碼。

MSGmsg;

HACCELhAccelTable;

//初始化全局字元串

LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);

LoadString(hInstance,IDC_C,szWindowClass,MAX_LOADSTRING);

MyRegisterClass(hInstance);

//執行應用程序初始化:

if(!InitInstance(hInstance,nCmdShow))

{

returnFALSE;

}

hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_C));

//主消息循環:

while(GetMessage(&msg,NULL,0,0))

{

if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

return(int)msg.wParam;

}

//

//函數帶納:MyRegisterClass()

//

//目的:注冊窗口類。

//

//注釋:

//

//僅當希望

//此代碼與添加到Windows95中的「RegisterClassEx」

//函數之前的Win32系統兼容時,才需要此函數及其用法。調用此函數十分重要,

//這樣應用程序就可以獲得關聯的

//「格式正確的」小圖標。

//

ATOMMyRegisterClass(HINSTANCEhInstance)

{

WNDCLASSEXwcex;

wcex.cbSize=sizeof(WNDCLASSEX);

wcex.style =CS_HREDRAW|CS_VREDRAW;

wcex.lpfnWndProc =WndProc;

wcex.cbClsExtra =0;

wcex.cbWndExtra =0;

wcex.hInstance =hInstance;

wcex.hIcon =LoadIcon(hInstance,MAKEINTRESOURCE(IDI_C));

wcex.hCursor =LoadCursor(NULL,IDC_ARROW);

wcex.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);

wcex.lpszMenuName =MAKEINTRESOURCE(IDC_C);

wcex.lpszClassName =szWindowClass;

wcex.hIconSm =LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));

returnRegisterClassEx(&wcex);

}

//

//函數:InitInstance(HINSTANCE,int)

//

//目的:保存實例句柄並創建主窗口

//

//注釋:

//

//在此函數中,我們在全局變數中保存實例句柄並

//創建和顯示主程序窗口。

//

BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)

{

HWNDhWnd;

hInst=hInstance;//將實例句柄存儲在全局變數中

hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);

if(!hWnd)

{

returnFALSE;

}

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

returnTRUE;

}

//

//函數:WndProc(HWND,UINT,WPARAM,LPARAM)

//

//目的:處理主窗口的消息。

//

//WM_COMMAND -處理應用程序菜單

//WM_PAINT -繪制主窗口

//WM_DESTROY -發送退出消息並返回

//

//

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

intwmId,wmEvent;

PAINTSTRUCTps;

HDChdc;

switch(message)

{

caseWM_COMMAND:

wmId=LOWORD(wParam);

wmEvent=HIWORD(wParam);

//分析菜單選擇:

switch(wmId)

{

caseIDM_ABOUT:

DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);

break;

caseIDM_EXIT:

DestroyWindow(hWnd);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

break;

caseWM_PAINT:

hdc=BeginPaint(hWnd,&ps);

//TODO:在此添加任意繪圖代碼...

EndPaint(hWnd,&ps);

break;

caseWM_DESTROY:

PostQuitMessage(0);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

return0;

}

//「關於」框的消息處理程序。

INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam)

{

UNREFERENCED_PARAMETER(lParam);

switch(message)

{

caseWM_INITDIALOG:

return(INT_PTR)TRUE;

caseWM_COMMAND:

if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)

{

EndDialog(hDlg,LOWORD(wParam));

return(INT_PTR)TRUE;

}

break;

}

return(INT_PTR)FALSE;

}

D. 怎麼用c語言做一個界面

空窗口:

#include<windows.h>
/*所有的窗口輸出到這里去*/
LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){
switch(Message){

/*停止後,告訴主線程停止*/
caseWM_DESTROY:{
PostQuitMessage(0);
break;
}

/*所有其他消息都使用默認程序處理*/
default:
returnDefWindowProc(hwnd,Message,wParam,lParam);
}
return0;
}
/*Win32GUI程序的主要功能:從這里開始執行*/
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){
WNDCLASSEXwc;/*窗口的屬性結構*/
HWNDhwnd;/*"句柄"一個窗口的標識符*/
MSGMsg;/*所有消息的臨時位置*/

/*修改結構和設置的東西*/
memset(&wc,0,sizeof(wc));
wc.cbSize =sizeof(WNDCLASSEX);
wc.lpfnWndProc =WndProc;/*發送消息的地方*/
wc.hInstance =hInstance;
wc.hCursor =LoadCursor(NULL,IDC_ARROW);

/*白色,COLOR_WINDOW是系統定義的顏色值,其數值是5*/
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName="WindowClass";
wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);/*載入一個標准圖標*/
wc.hIconSm =LoadIcon(NULL,IDI_APPLICATION);/*使用名稱「A」來作為該項目圖標*/

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"WindowRegistrationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,/*x*/
CW_USEDEFAULT,/*y*/
640,/*寬度*/
480,/*高度*/
NULL,NULL,hInstance,NULL);

if(hwnd==NULL){
MessageBox(NULL,"WindowCreationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}
/*
所有的輸入處理和發送到窗口過程。
注意,這個塊代碼流,直到它接收到的東西,
所以迴路不會產生不合理的高CPU使用率。
*/
while(GetMessage(&Msg,NULL,0,0)>0)/*如果沒有收到任何錯誤…*/
{
TranslateMessage(&Msg);/*如果存在翻譯關鍵碼字元*/
DispatchMessage(&Msg);/*發送它到WndProc*/
}
returnMsg.wParam;
}
閱讀全文

與c怎麼寫出有界面的程序相關的資料

熱點內容
怎麼多循環一次程序 瀏覽:158
大商所交易系統是什麼 瀏覽:386
徐步天交易要多少天 瀏覽:21
哪個手機app可以模擬交易美股 瀏覽:817
愛情虛假交易是什麼意思 瀏覽:458
番禺哪裡有鮮花批發市場 瀏覽:563
山東修正健康飲品怎麼代理 瀏覽:786
數據比較多復制是哪個鍵 瀏覽:474
批發市場的東西為什麼這么便宜 瀏覽:896
雪肌麗仁產品怎麼樣 瀏覽:274
怎麼做麥吉麗的代理 瀏覽:497
產品資質證書是什麼 瀏覽:511
百度文庫為什麼下載的是數據 瀏覽:810
快遞信息如何查商家 瀏覽:773
鋪面信息簡介怎麼寫 瀏覽:561
理財基金介紹產品怎麼買 瀏覽:41
代理網店需要哪些手續 瀏覽:273
怎麼樣發信息呢 瀏覽:236
羅布樂思技術困難怎麼回事 瀏覽:822
推薦理財產品客戶問為什麼相信你 瀏覽:471