導航:首頁 > 編程語言 > c語言寫窗口程序

c語言寫窗口程序

發布時間:2023-01-18 03:02:03

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

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

② 如何用C語言編寫一個簡單的程序!

上了大學有很多同學都在學習C語言,C++就是C語言的一種,那麼怎麼用c語言寫一個簡單的程序hello world呢,下邊來給大家演示一下

工具/材料

電腦,c語言軟體

特別提示

所有的輸入都要在英文半形的情況下輸入,不然程序會不能識別,會報錯。

③ 用C語言進行程序設計一個模擬窗口的程序

#include<stdio.h>
#include<graphics.h>
int main()
{
int gdriver,gmode,i;
gdriver=DETECT;
initgraph(&gdriver,&gmode," ");
setbkcolor(BLUE);
cleardevice();
setcolor(WHITE);
line(20,20,20,180);
line(20,20,280,20);
setcolor(8);
line(20,180,280,180);
line(280,180,280,20);
setcolor(7);
line(21,21,21,179);
line(21,21,279,21);
line(21,179,279,179);
line(279,179,279,21);
setfillstyle(1,7);
floodfill(30,50,7);
setcolor(8);
line(30,30,270,30);
line(30,30,30,170);
setcolor(15);
line(30,170,270,170);
line(270,170,270,30);
setcolor(7);
line(31,31,31,169);
line(31,31,269,169);
line(31,169,269,169);
line(269,169,269,31);
floodfill(25,25,7);
setcolor(13);
settextstyle(1,0,2);
outtextxy(115,85,"window");
getch();
closegraph();
return 0;
}

④ 怎麼用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);
    }

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

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

⑥ 學c語言如何做出有界面的程序

1、新建一個C項目,點擊文件,新建,項目,選擇C++Win32控制台應用。

⑦ C語言如何創建窗口

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

⑧ 怎樣使用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
#include
void
main()
{
MessageBox(NULL,
_T("Hello
World!"),
_T("我的第一個窗口程序"),
MB_OK);
}
當然,上面說過,像樓上那樣使用
TEXT
宏也是可以的,兩者是同一個東西。

⑨ 如何用C語言開發窗體應用程序。。

  1. 生產窗體可以使用函數。
    函數功能:該函數創建一個具有擴展風格的層疊式窗口、彈出式窗口或子窗口,其他與CreateWindow函數相同。
    函數原型:
    CreateWindowEx函數創建一個層疊的,自動彈出的(pop-up)或是一個子窗口通過擴展格式。另外這個函數的作用與CreateWindow函數的作用相同。要獲得更多的關於創建窗口的信息和關於CreateWindowEx函數參數的詳細描述。參見CreateWindow

    HWND CreateWindowEx(
    DWOR DdwExStyle, //窗口的擴展風格
    LPCTSTR lpClassName, //指向注冊類名的指針
    LPCTSTR lpWindowName, //指向窗口名稱的指針
    DWORD dwStyle, //窗口風格
    int x, //窗口的水平位置
    int y, //窗口的垂直位置
    int nWidth, //窗口的寬度
    int nHeight, //窗口的高度
    HWND hWndParent, //父窗口的句柄
    HMENU hMenu, //菜單的句柄或是子窗口的標識符
    HINSTANCE hInstance, //應用程序實例的句柄
    LPVOID lpParam //指向窗口的創建數據
    );

  2. 常式:

    include<windows.h>
    #include<stdio.h>
    LRESULTCALLBACKWinDouProc(
    HWNDhwnd,//handletowindow
    UINTuMsg,//messageidentifier
    WPARAMwParam,//firstmessageparameter
    LPARAMlParam//secondmessageparameter
    );
    classCWnd
    {
    public:
    CWnd()
    {
    m_hWnd=NULL;
    }
    BOOLCreateEx(
    DWORDdwExStyle,//extendedwindowstyle
    LPCTSTRlpClassName,//pointertoregisteredclassname
    LPCTSTRlpWindowName,//pointertowindowname
    DWORDdwStyle,//windowstyle
    intx,//horizontalpositionofwindow
    inty,//verticalpositionofwindow
    intnWidth,//windowwidth
    intnHeight,//windowheight
    HWNDhWndParent,//handletoparentorownerwindow
    HMENUhMenu,//handletomenuorchild-windowidentifier
    HANDLEhInstance,//handletoapplicationinstance
    LPVOIDlpParam//pointertowindow-creationdata
    );
    BOOLShowWindow(intnCmdShow);
    BOOLUpdateWindow();
    public:
    HWNDm_hWnd;
    };
    BOOLCWnd::CreateEx(
    DWORDdwExStyle,//extendedwindowstyle
    LPCTSTRlpClassName,//pointertoregisteredclassname
    LPCTSTRlpWindowName,//pointertowindowname
    DWORDdwStyle,//windowstyle
    intx,//horizontalpositionofwindow
    inty,//verticalpositionofwindow
    intnWidth,//windowwidth
    intnHeight,//windowheight
    HWNDhWndParent,//handletoparentorownerwindow
    HMENUhMenu,//handletomenuorchild-windowidentifier
    HANDLEhInstance,//handletoapplicationinstance
    LPVOIDlpParam//pointertowindow-creationdata
    )
    {
    m_hWnd=::CreateWindowEx(dwExStyle,lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,(HINSTANCE)hInstance,lpParam);
    if(m_hWnd!=NULL)
    returnTRUE;
    else
    returnFALSE;
    }
    BOOLCWnd::ShowWindow(intnCmdShow)
    {
    return::ShowWindow(m_hWnd,nCmdShow);
    }
    BOOLCWnd::UpdateWindow()
    {
    return::UpdateWindow(m_hWnd);
    }
    intWINAPIWinMain(
    HINSTANCEhInstance,//handletocurrentinstance
    HINSTANCEhPrevInstance,//handletopreviousinstance
    LPSTRlpCmdLine,//pointertocommandline
    intnCmdShow//showstateofwindow
    )
    {
    WNDCLASSwndclass;//先設計窗口類
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hbrBackground=(HBRUSH)GetStockObject(DKGRAY_BRUSH);
    wndclass.hCursor=LoadCursor(NULL,IDC_HELP);
    wndclass.hIcon=LoadIcon(NULL,IDI_WARNING);
    wndclass.hInstance=hInstance;
    wndclass.lpfnWndProc=WinDouProc;
    wndclass.lpszClassName="Magic_Maggie";
    wndclass.lpszMenuName=0;
    wndclass.style=CS_VREDRAW|CS_HREDRAW;
    //某一個變數原油幾個變數去掉一個特徵,可以用取反(~)後再進行與(&)
    //例如:style上去掉CS_NOCLOSE,可以style&~CS_NOCLOSE;
    RegisterClass(&wndclass);///注意先建立再注冊昂
    CWndwnd;
    wnd.CreateEx(NULL,"Magic_Maggie","DouDou",WS_OVERLAPPEDWINDOW,0,0,800,600,NULL,NULL,hInstance,NULL);
    wnd.ShowWindow(SW_SHOWNORMAL);
    wnd.UpdateWindow();
    MSGmsg;//消息循環
    while(GetMessage(&msg,NULL,0,0))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);//觸發WinDouProc
    }
    return0;
    }


    LRESULTCALLBACKWinDouProc(
    HWNDhwnd,//handletowindow
    UINTuMsg,//messageidentifier
    WPARAMwParam,//firstmessageparameter
    LPARAMlParam//secondmessageparameter
    )
    {
    switch(uMsg)
    {
    caseWM_LBUTTONDOWN:
    MessageBox(hwnd,"您按下了滑鼠左鍵昂","豆豆的程序",MB_OK);
    HDChdc;
    hdc=GetDC(hwnd);
    //.text.
    TextOut(hdc,0,0,"感謝您對豆豆程序的支持昂",strlen("感謝您對豆豆程序的支持昂"));
    ReleaseDC(hwnd,hdc);
    break;

    caseWM_CHAR:
    charszChar[20];
    sprintf(szChar,"Charis%d",wParam);
    MessageBox(hwnd,szChar,"豆豆的程序",MB_OK);
    break;

    caseWM_PAINT:
    PAINTSTRUCTps;
    HDChDc;
    hDc=BeginPaint(hwnd,&ps);
    TextOut(hDc,0,0,"這個是重繪滴哦",strlen("這個是重繪滴哦"));
    EndPaint(hwnd,&ps);
    break;

    caseWM_CLOSE://這個case與下邊的destroy這個case不要弄錯了,否則窗口不出現,但任務管理器中運行
    if(IDYES==MessageBox(hwnd,"您真的要退出么?","豆豆的程序",MB_YESNO))
    {
    DestroyWindow(hwnd);
    }
    break;

    caseWM_DESTROY:
    PostQuitMessage(0);
    //////////////////////////////////////////?????????????????????
    break;

    default:
    returnDefWindowProc(hwnd,uMsg,wParam,lParam);//別忘記了return

    }
    return0;
    }

⑩ C語言能編寫成窗口式的執行程序嗎

當然能了,因為Windows本身就是C語言編寫出來的.不過寫Windows窗口程序要使用Windows
API編程.

閱讀全文

與c語言寫窗口程序相關的資料

熱點內容
智行app鉑金會員怎麼還有期限 瀏覽:581
win10用子文件夾改名 瀏覽:234
ae鋼筆工具在哪裡 瀏覽:460
gn105數據線插哪裡 瀏覽:916
破鎖屏密碼方法 瀏覽:835
股票數據放哪裡 瀏覽:576
m格式庫文件 瀏覽:279
天際通數據服務怎麼開票 瀏覽:430
寫小說發哪個網站比較好 瀏覽:244
小米電視3藍牙文件路徑 瀏覽:111
shell讀取文件值 瀏覽:909
文件夾路徑欄消失 瀏覽:795
律師哪些業務不能代替大數據 瀏覽:952
lol哪些文件可以刪除 瀏覽:701
匯編程序中del是什麼意思 瀏覽:183
幼兒園免費網站模板下載 瀏覽:210
w619線刷教程 瀏覽:759
怎麼培養編程思想 瀏覽:697
手機捆綁app的軟體怎麼卸載 瀏覽:32
vb編程器有什麼用 瀏覽:999

友情鏈接