操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    本章我們來學習如何創(chuàng)建域用戶、創(chuàng)建組、劃分用戶到相應的組以及計算機的加域和退域。

    1、首先創(chuàng)建一個組織單位:鼠標右鍵點域名,新建,組織單位

    填寫組織單位名稱

    2、然后在剛才新建好的組織單位右側(cè)空白處,單擊鼠標右鍵,選擇新建用戶

    輸入用戶的姓名和登錄域的帳戶名稱

    為此帳戶設(shè)置密碼,建議有大小寫英文字母+數(shù)字+特殊符號,并且長度大于8,一般來說,由于密碼是管理員創(chuàng)建的,我們應該勾選:“用戶下次登錄時須更改密碼”,這樣能保證用戶密碼的保密性、安全性。本次示例用戶是管理員自己的帳戶,所以選擇密碼永不過期。

    點擊完成,就完成了一個域用戶的創(chuàng)建

    3、創(chuàng)建組:在剛才新建的組織單位,右側(cè)空白處,鼠標右鍵,新建組

    填寫組名,比如:行政部,點確定完成組的創(chuàng)建

    4、將用戶設(shè)置為隸屬于某個組:對著這個用戶,點擊鼠標右鍵,點屬性

    在隸屬于頁面,點擊添加

    輸入組名:行政部,點右側(cè)的“檢查名稱”出現(xiàn)下劃線,表示組名存在

    點確定后,能看到用戶屬性的隸屬于頁面,已經(jīng)顯示此用戶屬于行政部

    5、反之,我們也可以為某個組添加用戶:對著組名點鼠標右鍵,選:屬性

    在“成員”頁面點“添加”

    輸入用戶名或者姓名,然后點右側(cè)的“檢查名稱”

    如果此用戶存在,并且輸入的名稱正確,則會顯示帳戶信息并且有下劃線

    點確定后,在行政部這個組的成員列表顯示,另外一個用戶也已經(jīng)是行政部的成員了。

    6、計算機的加域:

    (1)配置IP地址,如果計算機的IP地址是自動分配的,那么我們必須在DHCP服務器中設(shè)置,分配給計算機的IP地址,必須與主域控制器在同一網(wǎng)段,或者不同網(wǎng)段,但是可以無障礙通訊,DNS服務器必須指向DC。手動設(shè)置IP,也是同樣的道理,DNS服務器必須填寫主域控制器(DC)的IP地址

    (2)將計算機加入域:桌面上的此電腦,右鍵,屬性,點:“更改設(shè)置”

    點“更改”,輸入域名后,確定

    輸入域管理員的帳戶和密碼

    稍等片刻,系統(tǒng)提示歡迎加入域

    已經(jīng)加入域的計算機,如果想退域,就在剛才輸入域名加域的那個頁面,改為選擇下面的工作組,然后輸入組名:workgroup,點確定后,同樣會被要求輸入域管理員的帳戶和密碼,輸入正確后,計算機就完成退域操作了

    預告:下一章,我們將詳細地講解共享文件夾的配置,旨在為企業(yè)打造等級森嚴并且安全性高的文件中心。敬請關(guān)注!

    2.2.7 第14練:處理WM_DESTROY消息

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

    014 編程達人win32 API每日一練

    第14個例子WM_DESTROY.C:回調(diào)函數(shù)---處理WM_DESTROY消息

    WM_DESTROY消息

    PostQuitMessage函數(shù)

    注意:關(guān)閉窗口后,程序退出。

    (c) www.bcdaren.com 編程達人

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

    #include <windows.h>

    /***************回調(diào)函數(shù)******************/

    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //消息回調(diào)函數(shù)


    /************程序入口 *********************/

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

    LPSTR lpCmdLine, int nCmdShow)

    {

    ……(略)

    return msg.wParam;//msg.wParam 來自一條表示退出的消息,返回這個值給系統(tǒng)

    }

    /**************回調(diào)函數(shù)——消息處理過程*********/

    //窗口回調(diào)函數(shù)

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

    {

    HDC hDC; //設(shè)備環(huán)境——繪圖的地方

    PAINTSTRUCT ps; //繪圖結(jié)構(gòu)體變量

    RECT rect; //繪圖區(qū)范圍

    switch (message)

    {

    case WM_CREATE: //創(chuàng)建窗口消息

    //return 0;

    break; //也可以

    case WM_PAINT://繪圖函數(shù),在窗口上繪圖!

    hDC=BeginPaint(hwnd, &ps);

    //獲得客戶區(qū)大小

    GetClientRect(hwnd, &rect);

    //繪制字符串

    TextOut(hDC, 200, 200, TEXT("愛達人!"), lstrlen(TEXT("愛達人!")));

    //繪制橢圓圖形

    Ellipse(hDC, 250, 250, 1200, 500);

    //繪制格式化文本,客戶區(qū)中間垂直居中對齊

    DrawText(hDC, TEXT("我的第一個窗口程序!"), -1, &rect,DT_CENTER |

    DT_VCENTER | DT_SINGLELINE);

    EndPaint(hwnd, &ps);

    break;

    case WM_DESTROY://處理退出消息

    //繪制橢圓圖形

    //Ellipse(hDC, 250, 250, 1200, 500);//測試

    PostQuitMessage(0);//此消息直接進入消息隊列的頭部!默認情況下,

    //DefWindowProc函數(shù)調(diào)用DestroyWindow函數(shù)來銷毀窗口。

    break;

    //default: //可以放在最后

    //return DefWindowProc(hwnd, message, wParam, lParam);

    }

    //return 0;

    //調(diào)用默認窗口過程以為應用程序未處理的任何窗口消息提供默認處理

    return DefWindowProc(hwnd, message, wParam, lParam);

    }

    /**************注意*******************

    /*

    WM_DESTROY消息:窗口銷毀后(調(diào)用DestroyWindow()后),消息隊列添加WM_DESTROY消息。

    流程:用戶通過點擊關(guān)閉程序按鈕后,消息隊列增加一條消息WM_CLOSE,然后程序從消息隊列中取走WM_CLOSE,WM_CLOSE消息的默認處理方式為調(diào)用DestroyWindow()向窗口發(fā)送一個WM_DESTROY消息,消息隊列增加WM_DESTROY,主程序消息循環(huán)再次取出后交給Windows系統(tǒng),Windows系統(tǒng)調(diào)用窗口過程處理WM_DESTROY消息,處理方式為調(diào)用ostQuitMessage(),在消息隊列中添加WM_QUIT標記,消息循環(huán)獲取WM_QUIT后退出消息循環(huán),程序退出。

    如果窗口過程不處理WM_CLOSE消息,默認情況下,默認窗口過程DefWindowProc函數(shù)同樣是調(diào)用DestroyWindow函數(shù)。

    ********************************************

    PostQuitMessage函數(shù):向系統(tǒng)指示線程已請求終止(退出)。通常用于響應WM_DESTROY消息。

    void PostQuitMessage(

    int nExitCode //指定的退出碼,是一個整數(shù)值。這個退出碼通常用來表示程序執(zhí)行的結(jié)果或狀態(tài)。此值用作WM_QUIT消息的wParam參數(shù)。

    );

    備注

    PostQuitMessage函數(shù)添加一個WM_QUIT退出標記到線程的消息隊列并立即返回;這個函數(shù)只是向系統(tǒng)表明這個線程在將來的某個時候請求退出。

    當線程從它的消息隊列中檢索WM_QUIT標記時,它應該退出它的消息循環(huán)并將控制權(quán)返回給系統(tǒng)。返回到系統(tǒng)的退出值必須是WM_QUIT消息的wParam參數(shù)。

    (有些書上將WM_QUIT視為一個消息,插入到消息隊列頭,然后立即退出,消息隊列中剩余的消息不會被處理,雖然比較形象,但是不太嚴謹,WM_QUIT其實是一個退出標記。)。

    */

    注意

    1.本例在關(guān)閉窗口后,終于可以正常退出程序了。原因就在于窗口過程WndProc處理了WM_DESTROY消息,向窗口消息隊列添加一個WM_QUIT退出標記。消息循環(huán)GetMessage函數(shù)獲取WM_QUIT后返回值為0,退出消息循環(huán),進而退出進程。

    2.動手實驗:在WM_DESTROY消息處理模塊添加一個繪制橢圓的函數(shù):

    Ellipse(hDC, 250, 250, 1200, 500);

    編譯器編譯后提示:error C4700: 使用了未初始化的局部變量“hDC”。

    錯誤原因:窗口過程中設(shè)置的hDC為局部變量,在WM_PAINT消息模塊中使用,但是在WM_DETROY模塊無法識別,說明局部變量在窗口過程中不可以跨消息模塊使用,作用域僅限一個消息模塊內(nèi)。記得水面以下的冰山部分并不是由我們實現(xiàn)的,Windows程序是消息驅(qū)動的程序。

    解決方案:將變量定義為全局區(qū)的靜態(tài)變量static HDC hDC;如果一個變量需要跨消息模塊使用,請將其定義為static變量。但是在這里并不建議將hDC定義為static變量,因為hDC會持續(xù)占用大塊內(nèi)存空間,隨用隨取就可以了。

    Ellipse函數(shù)處下斷點,當關(guān)閉窗口后,執(zhí)行Ellipse函數(shù)調(diào)用并不會顯示窗口。原因很簡單,因為窗口已經(jīng)不存在了。

    2.2.8 第15練:處理WM_CLOSE消息

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

    015 編程達人win32 API每日一練

    第15個例子WM_CLOSE.C:回調(diào)函數(shù)---處理WM_CLOSE消息

    WM_CLOSE消息

    DestroyWindow函數(shù)

    注意:關(guān)閉窗口后,程序退出。

    (c) www.bcdaren.com 編程達人

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

    #include <windows.h>

    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //消息回調(diào)函數(shù)

    /**************程序入口 **********

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

    LPSTR lpCmdLine, int nCmdShow)

    {

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

    ……(略)

    return msg.wParam;//msg.wParam 來自一條表示退出的消息,返回這個值給系統(tǒng)

    }

    /************回調(diào)函數(shù)——消息處理過程************/

    //窗口回調(diào)函數(shù)

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

    {

    HDC hDC; //設(shè)備環(huán)境——繪圖的地方

    PAINTSTRUCT ps; //繪圖結(jié)構(gòu)體變量

    RECT rect; //繪圖區(qū)范圍

    switch (message)

    {

    case WM_CREATE: //創(chuàng)建窗口消息

    return 0;

    case WM_PAINT://繪圖函數(shù),在窗口上畫畫兒!

    hDC=BeginPaint(hwnd, &ps);

    //獲得客戶區(qū)大小

    GetClientRect(hwnd, &rect);

    //繪制字符串

    TextOut(hDC, 200, 200, TEXT("愛達人!"), lstrlen(TEXT("愛達人!")));

    //繪制橢圓圖形

    Ellipse(hDC, 250, 250, 1200, 500);

    //繪制格式化文本,客戶區(qū)中間垂直居中對齊

    DrawText(hDC, TEXT("我的第一個窗口程序!"), -1, &rect,DT_CENTER |

    DT_VCENTER | DT_SINGLELINE);

    EndPaint(hwnd, &ps);

    return 0;

    case WM_CLOSE:

    /*

    1、一般是響應WM_CLOSE:調(diào)用DestroyWindow(),DestroyWindow()又發(fā)送WM_DESTROY消息;響應WM_DESTROY時,PostQuitMessage()函數(shù)發(fā)送WM_QUIT標記到消息隊列,GetMessage()發(fā)現(xiàn)WM_QUIT時,退出程序

    2、一個窗口或者應用程序應該被關(guān)閉時發(fā)出WM_CLOSE消息,當接收到WM_CLOSE消息時,

    如果你愿意,可以通過MessageBox向用戶提出是否真的要退出。

    3、用戶選擇退出或不退出。*/

    if (IDYES==MessageBox(hwnd,TEXT("是否真的要退

    出!),TEXT("OK?"),MB_YESNO))

    {

    DestroyWindow(hwnd);

    break;

    }

    else

    break;//不退出,并且什么都沒做。

    case WM_DESTROY://處理退出消息

    PostQuitMessage(0);//此消息直接進入消息隊列的頭部!

    break;

    default: //可以放在最后

    return DefWindowProc(hwnd, message, wParam, lParam); //調(diào)用默認窗口過程以為應用程序未處理的任何窗口消息提供默認處理

    }

    return 0;

    //return DefWindowProc(hwnd, message, wParam, lParam); //調(diào)用默認窗口過程以為應用程序未處理的任何窗口消息提供默認處理

    }

    /***************注意***********

    WM_CLOSE消息:作為窗口或應用程序應終止的信號發(fā)送。

    #define WM_CLOSE 0x0010

    返回值類型:LRESULT

    如果應用程序處理此消息,則應返回零。

    備注

    應用程序可以在銷毀窗口之前提示用戶進行確認,方法是處理WM_CLOSE消息并僅在用戶確認選擇后才調(diào)用DestroyWindow函數(shù)。

    默認情況下,DefWindowProc函數(shù)調(diào)用DestroyWindow函數(shù)來銷毀窗口。

    ***********************************

    DestroyWindow函數(shù):銷毀指定的窗口。該函數(shù)將WM_DESTROY和WM_NCDESTROY消息發(fā)送到窗口以將其停用并從中移出鍵盤焦點。

    該函數(shù)還破壞窗口的菜單,刷新線程消息隊列,破壞計時器,刪除剪貼板所有權(quán),并中斷剪貼板查看器鏈(如果窗口位于查看器鏈的頂部)。

    如果指定的窗口是父窗口或所有者窗口,則DestroyWindow在銷毀父窗口或所有者窗口時會自動銷毀關(guān)聯(lián)的子窗口或所有者窗口。該函數(shù)首先銷毀子窗口或所有者窗口,然后銷毀父窗口或所有者窗口。DestroyWindow還會破壞由CreateDialog函數(shù)創(chuàng)建的無模式對話框。

    BOOL DestroyWindow(

    HWND hWnd //銷毀窗口的句柄

    );

    返回值類型:布爾

    如果函數(shù)成功,則返回值為非零。

    如果函數(shù)失敗,則返回值為零。要獲取擴展的錯誤信息,請調(diào)用GetLastError。

    */

    點擊“關(guān)閉”系統(tǒng)菜單后,彈出對話框窗口,如圖2-6所示:

    圖2-6 WM_CLOSE消息

    注意

    讀者可能會有疑問,當用戶點擊系統(tǒng)菜單“關(guān)閉”窗口時,是如何產(chǎn)生并獲取WM_CLOSE消息的呢?答案是Windows操作系統(tǒng)獲取“關(guān)閉”系統(tǒng)菜單消息后,再發(fā)送一個WM_CLOSE消息。這個問題,我們將在下一節(jié)消息機制中詳細講解。

    2.2.9 第16練:處理WM_SIZE消息

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

    016 編程達人win32 API每日一練

    第16個例子WM_SIZE.C:窗口過程---處理WM_SIZE消息

    WM_SIZE消息---調(diào)整客戶區(qū)大小

    InvalidateRect函數(shù)

    注意:關(guān)閉窗口后,程序退出。

    (c) www.bcdaren.com 編程達人

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

    #include <windows.h>

    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //消息回調(diào)函數(shù)

    /************程序入口 *************

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

    LPSTR lpCmdLine, int nCmdShow)

    {

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

    ……(略)

    return msg.wParam;//msg.wParam 來自一條表示退出的消息,返回這個值給系統(tǒng)

    }

    /*********回調(diào)函數(shù)——消息處理過程***********/

    //窗口過程回調(diào)函數(shù)

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

    {

    HDC hDC; //設(shè)備環(huán)境——繪圖的地方

    PAINTSTRUCT ps; //繪圖結(jié)構(gòu)體變量

    RECT rect; //繪圖區(qū)范圍

    static int cxClient,cyClient;//客戶區(qū)的寬度和高度,定義為靜態(tài)局部變量

    switch (message)

    {

    case WM_CREATE: //創(chuàng)建窗口消息

    //return 0;

    break; //也可以

    case WM_SIZE://更改窗口客戶區(qū)大小的消息

    GetClientRect(hwnd, &rect);//等價于lParam參數(shù)的作用

    InvalidateRect(hwnd, &rect, TRUE);//TRUE重繪窗口客戶區(qū)背景

    cxClient=LOWORD(lParam);//客戶區(qū)的新寬度

    cyClient=HIWORD(lParam);//客戶區(qū)的新高度

    break;

    case WM_PAINT://繪圖函數(shù),在窗口上畫畫兒!

    hDC=BeginPaint(hwnd, &ps);

    //獲得客戶區(qū)大小

    GetClientRect(hwnd, &rect);

    //繪制字符串---跟隨客戶區(qū)尺寸的變化而變化

    //TextOut(hDC, 200, 200, TEXT("愛達人!"), lstrlen(TEXT("愛達人!

    ")));//對比測試

    TextOut(hDC, cxClient / 5, cyClient / 5, TEXT("愛達人!"),

    lstrlen(TEXT("愛達人!")));

    //繪制橢圓圖形---跟隨客戶區(qū)尺寸的變化而變化

    //Ellipse(hDC, 250, 250, 1200, 500);//對比測試

    Ellipse(hDC, cxClient / 4 , cyClient / 4 , cxClient / 4 * 3,

    cyClient / 4 * 3);

    //繪制格式化文本,客戶區(qū)中間垂直居中對齊

    DrawText(hDC, TEXT("我的第一個窗口程序!"), -1, &rect,DT_CENTER |

    DT_VCENTER | DT_SINGLELINE);

    EndPaint(hwnd, &ps);

    break;

    case WM_CLOSE:

    if (IDYES==MessageBox(hwnd,TEXT("是否真的要退出!

    "),TEXT("OK?"),MB_YESNO))

    {

    DestroyWindow(hwnd);

    break;

    }

    else

    break;//不退出,并且什么都沒做。

    case WM_DESTROY://處理退出消息

    PostQuitMessage(0);//此消息直接進入消息隊列的頭部!

    break;

    default: //可以放在最后

    return DefWindowProc(hwnd, message, wParam, lParam);//調(diào)用默認窗口過程

    }

    return 0;

    //return DefWindowProc(hwnd, message, wParam, lParam); //調(diào)用默認窗口過程

    }

    /*******************注意***************

    WM_SIZE消息:當主窗口的客戶區(qū)部分大小改變時,我們的應用程序?qū)⒔邮盏?WM_SIZE 消息。

    lParam 的高字部分是客戶區(qū)的高,低字部分是客戶區(qū)的寬。

    wParam請求的調(diào)整大小類型。此參數(shù)可以是下列值之一。

    SIZE_MAXHIDE:當某個其他窗口最大化時,消息將發(fā)送到所有彈出窗口。

    SIZE_MAXIMIZED:窗口已最大化。

    SIZE_MAXSHOW:當某些其他窗口恢復到原來的大小時,消息將發(fā)送到所有彈出窗口。

    SIZE_MINIMIZED:窗口已最小化。

    SIZE_RESTORED:窗口已調(diào)整大小,但SIZE_MINIMIZED或SIZE_MAXIMIZED值均不適用。

    說明:

    lParam和GetClientRect的功能一樣,有時候WM_SIZE的效率要比使用GetClientRect高.

    可以在程序中使用WM_SIZE來保存客戶區(qū)的大小方便以后使用.

    *******************************************

    InvalidateRect函數(shù):向指定的窗體更新區(qū)域添加一個矩形,然后窗口客戶區(qū)域的這一部分將被重新繪制。

    BOOL InvalidateRect(

    HWND hWnd, //新區(qū)域已更改的窗口的句柄。如果此參數(shù)為NULL,

    //則系統(tǒng)將使所有窗口(不僅是此應用程序的窗口)無效并重新繪制

    //所有窗口,并在函數(shù)返回之前發(fā)送WM_ERASEBKGND和WM_NCPAINT消

    //息。不建議將此參數(shù)設(shè)置為NULL。

    const RECT *lpRect,//指向RECT結(jié)構(gòu)的指針,該結(jié)構(gòu)包含要添加到更新區(qū)域的矩形的客

    //戶坐標。如果此參數(shù)為NULL,則整個工作區(qū)將添加到更新區(qū)域。

    BOOL bErase //指定在處理更新區(qū)域時是否要擦除更新區(qū)域內(nèi)的背景。

    //如果此參數(shù)為TRUE,則在調(diào)用BeginPaint函數(shù)時將擦除背景。

    //如果此參數(shù)為FALSE,則背景保持不變。

    );

    */ 運行結(jié)果:

    圖2-7 WM_SIZEE消息

    注意

    1.讀者是否還記得,當我們執(zhí)行ShowWindow函數(shù)時會向消息隊列發(fā)送一個WM_SIZE消息。WM_SIZE消息用于向窗口發(fā)送尺寸改變的消息。當窗口的大小發(fā)生變化時,系統(tǒng)會生成并發(fā)送WM_SIZE消息給窗口,使程序能夠?qū)Υ翱诔叽绲母淖冏龀鲰憫M_SIZE消息的lParam 參數(shù)的高字部分是客戶區(qū)的高,低字部分是客戶區(qū)的寬。wParam參數(shù)為請求的調(diào)整大小類型。每個Windows消息都有附屬的wParam參數(shù)和lParam 參數(shù)。不同消息的wParam參數(shù)和lParam 參數(shù)的含義是不同的。我們將在2.4節(jié)中詳細講解。

    2.細心的讀者會發(fā)現(xiàn),本例中的窗口是可以通過鼠標拖動改變窗口的大小,同時窗口客戶區(qū)繪制的圖形和文本也隨之而改變相應的位置。請注意處理WM_PAINT消息時的GDI繪圖函數(shù),繪制圖形和文本的坐標位置是和窗口客戶區(qū)等比例的。首先定義static變量cxClient,cyClient,接著在處理WM_SIZE消息時通過lParam參數(shù)獲取窗口客戶區(qū)的高和寬。當然也可以通過GetClientRect函數(shù)獲取窗口客戶區(qū)的寬和高,使用其中一個方法就可以了。

    3.請讀者對比測試一下,如果將繪制文本和橢圓的坐標和區(qū)域設(shè)置為固定值,顯示效果如何。

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有