導航:首頁 > 文件教程 > cwindows窗體應用程序教程

cwindows窗體應用程序教程

發布時間:2023-11-18 03:56:34

A. 如何:從命令行創建 Windows 窗體應用程序

控制台應用程序在命令行執行所有的輸入和輸出,因此對於快速試驗語言功能和編寫命令行實用工具,它們是理想的選擇。注意在開發Windows窗體應用程序時也將遇到本節中討論的開發環境的功能,因此,請不要僅因為您不打算編寫控制台應用程序就跳過本節!在本節中,您將學習:如何創建新的控制台應用程序。如何在代碼編輯器中使用書簽。如何查看解決方案資源管理器。如何使代碼保持良好的格式。如何使用IntelliSense更快更准確地輸入代碼。如何生成並運行您的應用程序。在該任務中創建的程序將使用System.IO命名空間中的類獲取並顯示包含在C:\目錄中的所有文件及其大小的列表。您可以這些代碼為基礎,開發用於在目錄中搜索特定文件名的實用工具。創建C#控制台應用程序在「文件」菜單上,單擊「新建項目」。出現「新建項目」對話框。該對話框列出VisualC#速成版可以創建的不同默認應用程序類型。選擇「控制台應用程序」作為項目類型,並將應用程序的名稱更改為「列出文件」。默認位置應是恰當的,但您始終可以根據需要輸入新路徑。單擊「確定」。VisualC#速成版為您的項目創建一個以項目標題命名的新文件夾,然後打開VisualC#速成版主窗口,包括代碼窗格,您將在其中輸入和編輯構成應用程序的C#源代碼。注意窗口頂部的工具欄。該工具欄包含各種圖標,用於創建、載入和保存項目、編輯源代碼、生成應用程序以及隱藏和顯示構成VisualC#速成版環境的其他窗口。該工具欄的最右端的五個圖標用來打開重要的窗口,如「解決方案資源管理器」和「工具箱」。將滑鼠指針放在其中任一圖標上可獲取彈出工具提示幫助。注意書簽使您可以從源代碼中的一個位置快速跳轉到另一位置,因此它對於編寫大型程序很有用。要創建書簽,請單擊「切換書簽」圖標或按Ctrl+B+T。邊距中會顯示一個青色標記。使用同樣的過程可刪除現有的書簽。您可以創建任意數量的書簽,並且可以使用「下一個」和「上一個」書簽圖標或按Ctrl+B+N和Ctrl+B+P在它們之間跳轉。確保「解決方案資源管理器」是可見的,方法是單擊屏幕右端的「解決方案資源管理器」選項卡或工具欄中的「解決方案資源管理器」圖標。「解決方案資源管理器」是非常有用的窗格,因為它顯示構成項目的各種文件。該項目中最重要的文件是「Program.cs」文件,它包含應用程序的源代碼。如果希望使VisualC#速成版的顯示保持美觀整潔,了解如何打開和隱藏「解決方案資源管理器」之類的窗口非常重要。默認情況下,「解決方案資源管理器」是可見的。如果要隱藏「解決方案資源管理器」,請單擊其標題欄中的「自動隱藏」圖標(圖釘圖標),或打開「解決方案資源管理器」標題欄中的「選項」菜單並啟用「自動隱藏」。其他窗口(如「類視圖」和「屬性」)也有這些圖標。在「代碼編輯器」中鍵入類名「Console」。如果「解決方案資源管理器」仍擋住「代碼」窗格,請在「代碼」窗格中單擊一次以隱藏「解決方案資源管理器」。現在單擊Main方法內的左大括弧({)的右邊,然後按Enter鍵開始新行。注意編輯器如何自動縮進游標。注意「代碼編輯器」始終嘗試將代碼格式保持為標準的、易於閱讀的布局。如果代碼開始顯得雜亂,您可以重新格式化整個文檔,方法是單擊「高級」,然後單擊「編輯」菜單中的「設置文檔格式」,或者按Ctrl+E+D。鍵入C#類名或關鍵字時,您可以選擇:自行鍵入完整的單詞,或者讓IntelliSense工具(「代碼」窗格的一部分)幫您完成。例如,當鍵入「c」時,將顯示單詞的彈出列表,因為IntelliSense嘗試預測您要鍵入的單詞。在這種情況下,您將看不到剛才顯示的單詞「Console」,因此要麼向下滾動列表,要麼繼續鍵入單詞「console」。當「console」在列表中突出顯示時,按Enter或Tab,或者雙擊它,Console將添加到代碼中。使用IntelliSense的好處是可以保證大小寫和拼寫是正確的。鍵入代碼還是讓IntelliSense幫您完成,完全由您決定。鍵入一個句點和方法名WriteLine。在Console後鍵入句點時,將立即顯示另一個IntelliSense列表。該列表包含屬於Console類的所有可能的方法和屬性。您需要WriteLine方法,並且應該能夠在列表的底部看到它。自行完成鍵入WriteLine或按向下鍵以選擇它,然後按Enter或Tab或雙擊它。WriteLine將添加到代碼中。鍵入左括弧。您將立即看到IntelliSense的另一項功能—方法簽名,它顯示為工具提示消息。在本例中,您可以看到19個不同的簽名,並可以通過單擊向上鍵和向下鍵瀏覽它們。鍵入字元串「該程序列出目錄中的所有文件。」鍵入引號內的消息,並添加一個右括弧。您將看到顯示一條紅色波浪下劃線,提醒您缺少某些符號。鍵入一個「分號」(;),下劃線將消失。完成程序。鍵入或復制並粘貼以下代碼來完成程序:C#staticvoidMain(string[]args){Console.WriteLine(":");System.IO.DirectoryInfodir=newSystem.IO.DirectoryInfo(@"C:\");foreach(System.IO.FileInfofileindir.GetFiles("*.*")){Console.WriteLine("{0},{1}",file.Name,file.Length);}Console.ReadLine();}程序中的最後一行是Console.ReadLine();,它使程序在按Enter鍵之前暫停。如果省略此行,命令行窗口將立即消失,您將看不到程序的輸出。如果您正在創建始終從命令行控制台中使用的命令行實用工具,可能需要省去對ReadLine()方法的調用。運行程序。現在您的第一個程序已完成,可以編譯和運行了。要執行此操作,請按F5或單擊工具欄中的「開始」圖標。在程序編譯和運行後,將打開「控制台」窗口,並顯示文件及其大小的列表。

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

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

C. 怎麼用C語言編寫一個windows窗口

  1. 調用window庫窗口函數即可創建windows窗口。

  2. 必須使用windows的編譯器,如VC,MS等等。

    RegisterClassEx函數:
    該函數注冊在隨後調用CreateWindow函數和CreateWindowEx函數中使用的窗口類。 RegisterClass函數己經由函數RegisterClassEx函數來代替,但是,如果不需要設置類的小目標則仍然可以使用RegisterClass函數。
    CreateWindowEx函數:
    該函數創建一個具有擴展風格的層疊式窗口、彈出式窗口或子窗口,其他與CreateWindow函數相同。關於創建窗口和其他參數的內容,請參看CreateWindow。具體仍可見微軟的msdn。
    消息處理函數WindowProc:
    該函數是一個應用程序定義的函數。它處理發送給窗口的消息。WINDPROC類型定義了一個指向該回調函數的指針。WindowProc是用於應用程序定義函數的佔位符。
    函數原型:
    LRESULT CALLBACK WindowProc (HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);
    參數:
    hwnd:指向窗口的句柄。
    uMsg:指定消息類型。
    wParam:指定其餘的、消息特定的信息。該參數的內容與UMsg參數值有關。
    IParam:指定其餘的、消息特定的信息。該參數的內容與uMsg參數值有關。
    返回值:返回值就是消息處理結果,它與發送的消息有關。

    一個簡單的Window的代碼如下:

    #include<Windows.h>
    #include<tchar.h>
    LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);
    intWinMain(
    __inHINSTANCEhInstance,
    __in_optHINSTANCEhPrevInstance,
    __inLPSTRlpCmdLine,
    __inintnShowCmd
    )
    {
    TCHAR*szName=_T("myWindow");
    WNDCLASSEXwc={0};
    HWNDhWnd=NULL;
    MSGMsg={0};
    wc.cbClsExtra=0;
    wc.cbWndExtra=0;
    wc.cbSize=sizeof(WNDCLASSEX);
    wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//通過函數來設置一個白色的背景,這里大家設置為NULL看看,會很有趣的
    wc.hCursor=NULL;//不設置
    wc.hIcon=NULL;//不設置
    wc.hIconSm=NULL;//不設置
    wc.hInstance=hInstance;//當前程序的句柄,hInstance是有系統給傳遞的
    wc.lpfnWndProc=WinProc;//窗口處理過程的回調函數。
    wc.lpszClassName=szName;//窗口類的名字。
    wc.lpszMenuName=NULL;
    wc.style=CS_HREDRAW|CS_VREDRAW;
    RegisterClassEx(&wc);//在系統中注冊
    hWnd=CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜歡"),WS_OVERLAPPEDWINDOW,
    200,100,600,400,NULL,NULL,hInstance,NULL);//創建窗口,窗口標題為"我的窗口我喜歡"
    if(hWnd==NULL)
    {
    MessageBox(NULL,_T("There'sanError"),_T("ErrorTitle"),MB_ICONEXCLAMATION|MB_OK);
    return0;
    }
    ShowWindow(hWnd,nShowCmd);//顯示窗口
    UpdateWindow(hWnd);
    //下面是對消息的循環處理,大家先不必管這些,下節課我會細說的
    while(GetMessage(&Msg,NULL,0,0))
    {
    TranslateMessage(&Msg);//翻譯消息
    DispatchMessage(&Msg);//分派消息
    }
    returnMsg.message;
    }
    //消息處理函數
    LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam)
    {
    switch(Msg)//處理消息過程
    {
    caseWM_DESTROY://響應滑鼠單擊關閉按鈕事件
    PostQuitMessage(0);//退出消息隊列
    return0;//退出函數
    }
    returnDefWindowProc(hWnd,Msg,wParam,lParam);
    }

D. 怎麼用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;
}

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

E. C語言如何創建窗口

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

F. 怎樣使用visual studio 2010以C語言編一個簡單的窗口程序

VC2010 生成的工程默認是 Unicode 編碼,字元串必須是 Unicode 字元,在前面加上 L:
MessageBox(NULL, L"Hello World!", L"我的第一個窗口程序", MB_OK);
一般來說,用 VC 開發程序都不這樣寫,而是應該是使用微軟定義的數據類型和宏,這樣便能同時編譯 ANSI 版本,不用修改源文件。須包含頭文件 tchar.h,對於字元串應使用 _T 或 TEXT 宏將其包含,如 _T("Hello")。當定義 Unicode 時,等同於 L"Hello";未定義時等同於 "Hello"。所以一般都寫成這樣:
#include <windows.h>
#include <tchar.h>
void main()
{
MessageBox(NULL, _T("Hello World!"), _T("我的第一個窗口程序"), MB_OK);
}
當然,上面說過,像樓上那樣使用 TEXT 宏也是可以的,兩者是同一個東西。

G. 怎樣用C語言編寫出窗體程序

#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;
}

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

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

閱讀全文

與cwindows窗體應用程序教程相關的資料

熱點內容
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567
文件夾正裝 瀏覽:279
剛復制的文件找不到怎麼辦 瀏覽:724
試運行適用於哪些體系文件 瀏覽:987
ghost文件復制很慢 瀏覽:967
傑德原車導航升級 瀏覽:240
編程dest是什麼意思 瀏覽:935
linux埠鏡像 瀏覽:820
iphone5屏幕清塵 瀏覽:157
機頂盒密碼怎麼改 瀏覽:672
w7系統下載32位教程 瀏覽:618
pcb文件包括哪些內容 瀏覽:598
g00文件 瀏覽:607
用bat程序刪除程序 瀏覽:516

友情鏈接