當前位置:首頁 » 軟體設計 » c窗體設計

c窗體設計

發布時間: 2020-12-06 23:32:02

① 用C語言編寫設計一個Windows應用程序窗口界面。

您好!

小弟建議您用 Visual C# 2008 軟體
這不是問題,這是標准模塊

屬於秒殺問題 根本不需要任何演演算法(內建)!

② c語言程序設計窗體

|建立窗口很簡單,只需呼叫CreateWindow函數即可。
HELLOWIN.C

/*------------------------------------------------------------------------

HELLOWIN.C -- Displays "Hello, Windows 98!" in client area

(c) Charles Petzold, 1998

-----------------------------------------------------------------------*/

#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 ("HelloWin") ;

HWND hwnd ;

MSG msg ;

WNDCLASwndclass ;

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.lpszMenuNam = NULL ;

wndclass.lpszClassName= szAppName ;

if (!RegisterClass (&wndclass))

{

MessageBox ( NULL, TEXT ("This program requires Windows NT!"),

szAppName, MB_ICONERROR) ;

return 0 ;

}

hwnd = CreateWindow( szAppName, // window class name

TEXT ("The Hello Program"), // window caption

WS_OVERLAPPEDWINDOW, // window style

CW_USEDEFAULT,// initial x position

CW_USEDEFAULT,// initial y position

CW_USEDEFAULT,// initial x size

CW_USEDEFAULT,// initial y size

NULL, // parent window handle

NULL, // window menu handle

hInstance, // program instance handle

NULL) ; // creation parameters

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_CREATE:

PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;

return 0 ;

case WM_PAINT:

hdc = BeginPaint (hwnd, &ps) ;

GetClientRect (hwnd, &rect) ;

DrawText (hdc, TEXT ("Hello, Windows 98!"), -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語言窗口界面如何美化

首先修改背景字體顏色 :
顏色屬性由兩十六進制數字指定 -- 第背景第二個則是前景,
每個數字內可以容為以下任何值之一
0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 淺綠色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色

④ C語言程序的窗體

可以是可以,但是如果光用C語言的特性來編寫Windows窗口程序太費勁,C不適合寫窗口程序。給你如下代碼,可以在VC中編譯成功。

/*------------------------------------------------------------
HELLOWIN.C -- Displays "Hello, Windows 98!" in client area
(c) Charles Petzold, 1998
------------------------------------------------------------*/

#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 ("HelloWin") ;
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 = szAppName ;

if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}

hwnd = CreateWindow (szAppName, // window class name
TEXT ("The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters

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_CREATE:
PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
return 0 ;

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;

GetClientRect (hwnd, &rect) ;

DrawText (hdc, TEXT ("Hello, Windows 98!"), -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) ;
}

##########################################

這只是在窗口中間顯示hello,windows98而已,但是代碼卻這么長,估計你也看不懂。不管是窗體,還是所有功能事件完全得自己寫,太麻煩。研究windows程序運行原理,倒可以學學也無妨。所有windows程序最後編譯後都成為這種形式,但是因為寫代碼的時候完全被面向對象包裝了起來,所以都不知道windows程序原來是這么啟動的。

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

  1. 生產窗體可以使用CreateWindowEx函數。
    函數功能:該函數創建一個具有擴展風格的層疊式窗口、彈出式窗口或子窗口,其他與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#窗體設計

c#高級編程第四版來,如果有基礎的話看源這本書,可以說深入淺出,窗體設計+控制項介紹+實例一共就40頁左右,花兩天時間看完就入門了.
不要想去找什麼視頻教程,又不清晰又拖沓,反而沒什麼效率,還是自己邊看書邊操作更直接!

⑦ 怎樣用c語言設計立體窗口

立體窗口?你還想搞3D窗口嗎?如果只是想寫普通的窗口程序,可以用相關的API

⑧ C語言怎麼設計窗口呀

樓主
首先這不是c與c#區別
你學c#的時候之所以有這些控制項,能進行界面編輯是因為你內建的是winform程序容,在編輯的時候實際上也是有代碼控制的。如果你c#建的是控制台程序的話就會與c語言一樣了,但是你在應用中加入 using System.Windows.Forms;那麼就可以調用winform程序的控制項了。
一般的話你是為了學習一種語言的話建議學習控制台應用程序。如果用界面的話對你語言學習沒有什麼好處,反而會讓你分心。當你真真學習做一個項目的時候可以用winform來了。反正當你學習到一定程度你就會明白其中的關系了。
對於c語言的話我本人只用過控制台,通過代碼來創建窗口,也是可以產生你所需要的效果的。
你要明白現在你要學的是一門語言,你要懂得語法等知識,而不是費心去拉幾個控制項,所以好好的學好基礎吧。c#的話也在控制台上來聯系。你要學的不是開發工具,所以不要把精力浪費在這里,而且還把自己搞得亂七八糟的。
至於樓上的,vc是c++的編譯工具,只不過可以運行c語言程序而已,樓主用的工具比vc好的多,vc老了,樓主的才是新版,不用理會

⑨ C,C++設計出窗口程序的方法

主流當來然是MFC(Microsoft Foundation Classes),win32 Application 中的自API 函數 Create也可以繪制出一個窗口 再用ShowWindow顯示窗口 UpdateWindow更新窗口

⑩ 怎麼設計C語言立體窗口

所謂立體窗口實際上就是你自己畫出陰影,可以先下面畫出深色背景,然後在上面用正常背景色畫,類似這樣的效果。

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837