當前位置:首頁 » 編程語言 » c語言ws
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言ws

發布時間: 2022-06-14 16:05:16

c語言windows.h程序問題

恩,想用C語言做windows窗口界面的話,肯定是要調用windows api函數來完成,而大多數API涵數都在<windows.h>中有聲明,所以你要包含它,但是windows程序的運行機制和你平時用C寫的控制台程序很不一樣,我給出一個例子,你可以參考一下:
/****************************************************************************
* *
* File : main.c *
* *
* Purpose : Generic Win32 application. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

#define WIN32_LEAN_AND_MEAN /* speed up compilations */
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <tchar.h>
#include "main.h"

#define NELEMS(a) (sizeof(a) / sizeof((a)[0]))

/** Prototypes **************************************************************/

static LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
static void Main_OnPaint(HWND);
static void Main_OnCommand(HWND, int, HWND, UINT);
static void Main_OnDestroy(HWND);
static LRESULT WINAPI AboutDlgProc(HWND, UINT, WPARAM, LPARAM);

/** Global variables ********************************************************/

static HANDLE ghInstance;

/****************************************************************************
* *
* Function: WinMain *
* *
* Purpose : Initialize the application. Register a window class, *
* create and display the main window and enter the *
* message loop. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
INITCOMMONCONTROLSEX icc;
WNDCLASS wc;
HWND hwnd;
MSG msg;

ghInstance = hInstance;

/* Initialize common controls. Also needed for MANIFEST's */
/*
* TODO: set the ICC_???_CLASSES that you need.
*/
icc.dwSize = sizeof(icc);
icc.dwICC = ICC_WIN95_CLASSES /*|ICC_COOL_CLASSES|ICC_DATE_CLASSES|ICC_PAGESCROLLER_CLASS|ICC_USEREX_CLASSES|... */;
InitCommonControlsEx(&icc);

/* Load Rich Edit control support */
/*
* TODO: uncomment one of the lines below, if you are using a Rich Edit control.
*/
// LoadLibrary(_T("riched32.dll")); // Rich Edit v1.0
// LoadLibrary(_T("riched20.dll")); // Rich Edit v2.0, v3.0

/*
* TODO: uncomment line below, if you are using the Network Address control (Windows Vista+).
*/
// InitNetworkAddressControl();

/* Register the main window class */
wc.lpszClassName = _T("aaClass");
wc.lpfnWndProc = MainWndProc;
wc.style = CS_OWNDC|CS_VREDRAW|CS_HREDRAW;
wc.hInstance = ghInstance;
wc.hIcon = LoadIcon(ghInstance, MAKEINTRESOURCE(IDR_ICO_MAIN));
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MNU_MAIN);
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
if (!RegisterClass(&wc))
return 1;

/* Create the main window */
hwnd = CreateWindow(_T("aaClass"),
_T("aa Program"),
WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL,
0,
0,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
ghInstance,
NULL
);
if (!hwnd) return 1;

/* Show and paint the main window */
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

/* Pump messages until we are done */
#if 0
/* "Politically correct" code -- SEE MICROSOFT DOCUMENTATION */
for (;;)
{
BOOL fRet = GetMessage(&msg, NULL, 0, 0);
if (fRet == -1) /* Error */
{
/* TODO: handle the error from GetMessage() */
__debugbreak();
return -1;
}
else if (fRet == 0) /* WM_QUIT */
{
break;
}
else /* Not error or WM_QUIT */
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
#else
/* "Commonly seen" code */
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
#endif

return msg.wParam;
}

/****************************************************************************
* *
* Function: MainWndProc *
* *
* Purpose : Process application messages. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

static LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
HANDLE_MSG(hwnd, WM_PAINT, Main_OnPaint);
HANDLE_MSG(hwnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hwnd, WM_DESTROY, Main_OnDestroy);
/* TODO: enter more messages here */
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
}

/****************************************************************************
* *
* Function: Main_OnPaint *
* *
* Purpose : Process a WM_PAINT message. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

static void Main_OnPaint(HWND hwnd)
{
PAINTSTRUCT ps;
RECT rc;

BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rc);
DrawText(ps.hdc, _T("Hello, Windows!"), -1, &rc, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd, &ps);
}

/****************************************************************************
* *
* Function: Main_OnCommand *
* *
* Purpose : Process a WM_COMMAND message. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

static void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch (id)
{
case IDM_ABOUT:
DialogBox(ghInstance, MAKEINTRESOURCE(DLG_ABOUT), hwnd, (DLGPROC)AboutDlgProc);

/* TODO: Enter more commands here */
}
}

/****************************************************************************
* *
* Function: Main_OnDestroy *
* *
* Purpose : Process a WM_DESTROY message. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

static void Main_OnDestroy(HWND hwnd)
{
PostQuitMessage(0);
}

/****************************************************************************
* *
* Function: AboutDlgProc *
* *
* Purpose : Process messages for the About dialog. The dialog is *
shown when the user selects "About" in the "Help" menu. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

static LRESULT CALLBACK AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
/*
* Nothing special to initialize.
*/
return TRUE;

case WM_COMMAND:
switch (wParam)
{
case IDOK:
case IDCANCEL:
/*
* OK or Cancel was clicked, close the dialog.
*/
EndDialog(hDlg, TRUE);
return TRUE;
}
break;
}

return FALSE;
}

這就是windows程序的基本框架

② 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的代碼如下:

  3. #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語言寫的程序怎樣才能脫離Dos,在Windiows環境里運行

??不是吧
一般的都能在windows里運行啊

你說的是不是 運行時系統開了個像DOS的窗口讓你的程序在裡面運行啊???是的話就是正常的,因為你寫的根本就不是WIN32窗口程序,你都沒代碼讓你的程序擁有窗口,系統怎麼給你窗口啊?

要不像的話,就要寫WIN32的窗口程序,但我總不能在這教你怎麼寫吧

④ 用c語言用戶輸入一個數字,你輸入的數字XX代表X月X周X天。

C語言實現輸入一個日期,格式如20190415,計算出所在月份,是當年的第X天,第X周,參考代碼如下:

#include<stdio.h>
intdays(intyear,intmonth,intday)
{
inti,sum=0;
constintday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30};
for(i=0;i<month;i++)
sum+=day_tab[i];
sum+=day;
if((year%4==0&&year%100!=0||year%400==0)&&month>=3)
sum+=1;
returnsum;
}
intweekday(inty,intm,intd)
{
intt;
if(m==1||m==2){
m+=12;
y--;
}
t=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7;
if(t==0)t=7;
returnt;
}
intmain()
{
inty,m,d;
intds,ws,fd,t;
scanf("%4d%2d%2d",&y,&m,&d);
ds=days(y,m,d);
fd=weekday(y,1,1);
t=ds+fd-1;
ws=t/7;
if(t%7>0)ws++;
printf("是%d年的%d月、第%d天、第%d周",y,m,ds,ws);
return0;
}

⑤ 如何用C語言做一個windows應用程序窗口界面

  1. 可以使用CreateWindow函數。

    CreateWindow,Windows API宏, 在WinUser.h中根據是否已定義Unicode被分別定義為CreateWindowW和CreateWindowA,後兩者又被分別定義為對CreateWindowExW和CreateWindowExA函數的調用。
    函數原型:
    HWND CreateWindow(
    LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU hMenu,
    HANDLE hlnstance,
    LPVOID lpParam);
    參數:
    詳情
    lpClassName
    指向一個空結束的字元串或整型數atom。如果該參數是一個整型量,它是由此前調用theGlobalAddAtom函數產生的全局量。這個小於0xC000的16位數必須是lpClassName參數字的低16位,該參數的高位必須是0。
    如果lpClassName是一個字元串,它指定了窗口的類名。這個類名可以是任何用函數RegisterClass注冊的類名,或是任何預定義的控制類名。請看說明部分的列表。
    LPWindowName
    指向一個指定窗口名的空結束的字元串指針。
    如果窗口風格指定了標題條,由lpWindowName指向的窗口標題將顯示在標題條上。當使用Createwindow函數來創建控制例如按鈕,選擇框和靜態控制時,可使用lpWindowName來指定控制文本。
    dwStyle
    指定創建窗口的風格。該參數可以是下列窗口風格的組合再加上說明部分的控制風格。風格意義:
    WS_BORDER:創建一個帶邊框的窗口。
    WS_CAPTION:創建一個有標題框的窗口(包括WS_BORDER風格)。
    WS_CHILD:創建一個子窗口。這個風格不能與WS_POPUP風格合用。
    WS_CHILDWINDOW:與WS_CHILD相同。
    WS_CLIPCHILDREN:當在父窗口內繪圖時,排除子窗口區域。在創建父窗口時使用這個風格。
    WS_CLIPSIBLINGS:排除子窗口之間的相對區域,也就是,當一個特定的窗口接收到WM_PAINT消息時,WS_CLIPSIBLINGS 風格將所有層疊窗口排除在繪圖之外,只重繪指定的子窗口。如果未指定WS_CLIPSIBLINGS風格,並且子窗口是層疊的,則在重繪子窗口的客戶區時,就會重繪鄰近的子窗口。
    WS_DISABLED:創建一個初始狀態為禁止的子窗口。一個禁止狀態的窗口不能接受來自用戶的輸入信息。
    WS_DLGFRAME:創建一個帶對話框邊框風格的窗口。這種風格的窗口不能帶標題條。
    WS_GROUP:指定一組控制的第一個控制。這個控制組由第一個控制和隨後定義的控制組成,自第二個控制開始每個控制,具有WS_GROUP風格,每個組的第一個控制帶有WS_TABSTOP風格,從而使用戶可以在組間移動。用戶隨後可以使用游標在組內的控制間改變鍵盤焦點。
    WS_HSCROLL:創建一個有水平滾動條的窗口。
    WS_ICONIC:創建一個初始狀態為最小化狀態的窗口。與WS_MINIMIZE風格相同。
    WS_MAXIMIZE:創建一個初始狀態為最大化狀態的窗口。
    WS_MAXIMIZEBOX:創建一個具有最大化按鈕的窗口。該風格不能與WS_EX_CONTEXTHELP風格同時出現,同時必須指定WS_SYSMENU風格。
    WS_OVERLAPPED:產生一個層疊的窗口。一個層疊的窗口有一個標題條和一個邊框。與WS_TILED風格相同。
    WS_OVERLAPPEDWINDOW:創建一個具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX風格的層疊窗口,與WS_TILEDWINDOW風格相同。
    WS_POPUP:創建一個彈出式窗口。該風格不能與WS_CHILD風格同時使用。
    WS_POPUPWINDOW:創建一個具有WS_BORDER,WS_POPUP,WS_SYSMENU風格的窗口,WS_CAPTION和WS_POPUPWINDOW必須同時設定才能使窗口某單可見。
    WS_SIZEBOX:創建一個可調邊框的窗口,與WS_THICKFRAME風格相同。
    WS_SYSMENU:創建一個在標題條上帶有窗口菜單的窗口,必須同時設定WS_CAPTION風格。
    WS_TABSTOP:創建一個控制,這個控制在用戶按下Tab鍵時可以獲得鍵盤焦點。按下Tab鍵後使鍵盤焦點轉移到下一具有WS_TABSTOP風格的控制。
    WS_THICKFRAME:創建一個具有可調邊框的窗口,與WS_SIZEBOX風格相同。
    WS_TILED:產生一個層疊的窗口。一個層疊的窗口有一個標題和一個邊框。與WS_OVERLAPPED風格相同。
    WS_TILEDWINDOW:創建一個具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX風格的層疊窗口。與WS_OVERLAPPEDWINDOW風格相同。
    WS_VISIBLE:創建一個初始狀態為可見的窗口。
    WS_VSCROLL:創建一個有垂直滾動條的窗口。
    X
    指定窗口的初始水平位置。對一個層疊或彈出式窗口,X參數是屏幕坐標系的窗口的左上角的初始X坐標。對於子窗口,x是子窗口左上角相對父窗口客戶區左上角的初始X坐標。如果該參數被設為CW_USEDEFAULT則系統為窗口選擇預設的左上角坐標並忽略Y參數。CW_USEDEFAULT只對層疊窗口有效,如果為彈出式窗口或子窗口設定,則X和y參數被設為零。
    Y
    指定窗口的初始垂直位置。對一個層疊或彈出式窗口,y參數是屏幕坐標系的窗口的左上角的初始y坐標。對於子窗口,y是子窗口左上角相對父窗口客戶區左上角的初始y坐標。對於列表框,y是列表框客戶區左上角相對父窗口客戶區左上角的初始y坐標。如果層疊窗口是使用WS_VISIBLE風格位創建的並且X參數被設為CW_USEDEFAULT,則系統將忽略y參數。
    nWidth
    以設備單元指明窗口的寬度。對於層疊窗口,nWidth或是屏幕坐標的窗口寬度或是CW_USEDEFAULT。若nWidth是CW_USEDEFAULT,則系統為窗口選擇一個預設的高度和寬度:預設寬度為從初始X坐標開始到屏幕的右邊界,預設高度為從初始Y坐標開始到目標區域的頂部。CW_USEDEFAULT只對層疊窗口有效;如果為彈出式窗口和子窗口設定CW_USEDEFAULT標志則nWidth和nHeight被設為零。
    nHeight
    以設備單元指明窗口的高度。對於層疊窗口,nHeight是屏幕坐標的窗口寬度。若nWidth被設為CW_USEDEFAULT,則系統忽略nHeight參數。
    hWndParent
    指向被創建窗口的父窗口或所有者窗口的句柄。若要創建一個子窗口或一個被屬窗口,需提供一個有效的窗口句柄。這個參數對彈出式窗口是可選的。Windows NT 5.0;創建一個消息窗口,可以提供HWND_MESSAGE或提供一個己存在的消息窗口的句柄。
    hMenu
    菜單句柄,或依據窗口風格指明一個子窗口標識。對於層疊或彈出式窗口,hMenu指定窗口使用的菜單:如果使用了菜單類,則hMenu可以為NULL。對於子窗口,hMenu指定了該子窗口標識(一個整型量),一個對話框使用這個整型值將事件通知父類。應用程序確定子窗口標識,這個值對於相同父窗口的所有子窗口必須是唯一的。
    hlnstance
    與窗口相關聯的模塊實例的句柄。
    lpParam
    指向一個值的指針,該值傳遞給窗口WM_CREATE消息。該值通過在IParam參數中的CREATESTRUCT結構傳遞。如果應用程序調用CreateWindow創建一個MDI客戶窗口,則lpParam必須指向一個CLIENTCREATESTRUCT結構。
    返回值:如果函數成功,返回值為新窗口的句柄:如果函數失敗,返回值為NULL。若想獲得更多錯誤信息,請調用GetLastError函數。

  2. 常式:

    //Window.cpp:.
    #include<windows.h>
    LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);


    intAPIENTRYWinMain(HINSTANCEhInstance,//應用程序的實例句柄,
    HINSTANCEhPrevInstance,
    LPSTRlpCmdLine,//命令行
    intnCmdShow)//顯示方式
    {
    MSGmsg;
    HWNDhWnd;
    charszTitle[]="系統信息";//Thetitlebartext
    charszWindowClass[]="popMsg";//Thetitlebartext
    WNDCLASSEXwcex={0};
    wcex.cbSize=sizeof(WNDCLASSEX);//WNDCLASSEX結構體大小
    wcex.style=CS_HREDRAW|CS_VREDRAW;//位置改變時重繪
    wcex.lpfnWndProc=(WNDPROC)WndProc;//消息處理函數
    wcex.hInstance=0;//當前實例句柄
    wcex.hbrBackground=(HBRUSH)COLOR_WINDOWFRAME;//背景色
    wcex.lpszClassName=szWindowClass;//參窗口類名
    wcex.hIcon=0;//圖標
    wcex.hCursor=LoadCursor(NULL,IDC_ARROW);//游標
    wcex.lpszMenuName=0;//菜單名稱
    wcex.hIconSm=0;//最小化圖標
    RegisterClassEx(&wcex);//注冊窗口類

    hWnd=CreateWindow(szWindowClass,szTitle,WS_SYSMENU|WS_VISIBLE,//創建窗口
    CW_USEDEFAULT,CW_USEDEFAULT,400,300,NULL,NULL,0,NULL);
    if(!hWnd){
    returnFALSE;
    }

    ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);

    while(GetMessage(&msg,NULL,0,0))//消息循環:
    {
    TranslateMessage(&msg);//轉化虛擬按鍵到字元消息
    DispatchMessage(&msg);//分派消息調用回調函數
    }
    returnmsg.wParam;
    }

    LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)
    {
    PAINTSTRUCTps;
    HDChdc;
    RECTrect;
    switch(message)
    {
    caseWM_PAINT://重繪消息
    hdc=BeginPaint(hWnd,&ps);
    GetClientRect(hWnd,&rect);
    MoveToEx(hdc,10,10,0);
    SelectObject(hdc,::CreatePen(PS_SOLID,1,RGB(0xFF,0,0)));
    LineTo(hdc,100,200);
    //DrawText(hdc,szHello,strlen(szHello),&rt,DT_CENTER);
    EndPaint(hWnd,&ps);
    break;

    caseWM_CREATE:

    RegisterHotKey(hWnd,1,0,0x41);
    break;
    caseWM_HOTKEY:
    MessageBox(0,0,0,0);
    break;
    caseWM_TIMER:


    break;
    caseWM_DESTROY://窗口銷毀消息
    PostQuitMessage(0);
    break;
    default:
    returnDefWindowProc(hWnd,message,wParam,lParam);
    }
    return0;
    }

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

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

⑦ c語言Win32程序設計,無法顯示結果,WS_VISIBLE

窗口顯示風格問題出錯吧

⑧ 國二我想同時報WS office和C語言,可以么

可以,網上報名的網站上有提示的

⑨ c語言可以編譯windows下的程序嗎

學windows消息機制
學windows api就可以了
下面是最簡單的了

#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPSTR lpszClass="TextOut";

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;

WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);

hWnd=CreateWindow(lpszClass,"My First Program",WS_OVERLAPPEDWINDOW | WS_VSCROLL,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);

while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rt={100,100,400,300};
char str[]=" "
""
"sadfsadfasdfdsfasdf"
"";
switch(iMessage) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
DrawText(hdc,str,-1,&rt,DT_CENTER | DT_WORDBREAK);
// SetTextAlign(hdc, TA_CENTER);
// TextOut(hdc,200,60,"Beautiful Korea",15);
// TextOut(hdc,200,80,"is",2);
// TextOut(hdc,200,100,"My Lovely Home Country",22);
EndPaint(hWnd,&ps);
return 0;
/* case WM_LBUTTONDOWN:
hdc=GetDC(hWnd);
TextOut(hdc,100,100,"Beautiful Korea",15);
ReleaseDC(hWnd, hdc);
return 0;
*/
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

⑩ C語言問題。我要完整的可通過編譯的在WINxp下用C和API寫透明窗口的代碼。

CreateWindowEx(WS_EX_LAYERED|WS_EX_TRANSPARENT,......) 創建一個分層和透明的窗口