六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

改變插入光標的閃爍速度

[摘要]問題  對于大多數用戶來說,插入光標或編輯光標閃爍得太塊或太慢都會使他們不易辨別,因此希望能夠允許用戶來定制插入光標的閃爍速度,以便他們能夠較容易地閱讀編輯框中的文本并找到它們相應的位置。方法  在...
問題
  對于大多數用戶來說,插入光標或編輯光標閃爍得太塊或太慢都會使他們不易辨別,因此希望能夠允許用戶來定制插入光標的閃爍速度,以便他們能夠較容易地閱讀編輯框中的文本并找到它們相應的位置。

方法
  在 Windows 9x 可定制的領域里,如果用戶想作某種改變而操作系統卻不允許改變,這確實是件糟透了的事情,Windows 9x 充分考慮了這一特殊問題,并通過對 API 函數 SetCaretBlinkTime 的簡單調用,解決了這一問題。
  函數 SetCaretBlinkTime 顧名思義,用來改變編輯域中光標(也就是插入光標)的閃爍速度。與此相伴的函數 GetCaretBlinkTime 用來返回插入光標閃爍速度的當前設置值,當利用諸如 SetCaretBlinkTime 這樣的系統函數時,應用程序通常應“考慮周到”,即在完成使用某一屬性后,應把它恢復為原來的設置值。插入光標的閃爍速度通常是為 Windows 中的所有應用程序設置的,所以當從自己的編輯窗口中移去光標時,應通過把閃爍速度重新設置為先前的值或缺省的值,來恢復 Windows 的設定。
  本節中,將討論如何在應用程序中減慢或加快光標的閃爍速度。

步驟
  按照如下的步驟生成一個例子程序。選擇主菜單 Dialog 中的菜單項 Change Caret Blink Speed,會彈出一個對話框。點擊按鈕 Change Caret Blink,然后在編輯域中點擊一下,可以看到插入光標開始正常閃爍。多次點擊按鈕 Change Caret Blink,每次點擊按鈕后,在編輯域中點擊一下,可以看到插入光標的閃爍速度會發生各種改變,并且在與此按鈕相鄰的文本域中顯示出閃爍速度。

  實現例子程序的步驟如下:
  1.在 Visual C++ 中利用 App Wizard 創建新的工程 Ld94。進入 App Studio,創建新的對話框,在對話框中,添加標題為 Change Caret Blink 的按鈕以及標題為 Speed: Normal、ID 為 IDC_TEXT 的文本域。在對話框中再添加一個編輯域,把按鈕 OK 和 Cancel 移到對話框的底部。
  2.進入 Class Wizard,為剛創建的對話框創建一個新的對話框類。把此類命名為 CBlinkDlg,從下拉列表中選擇 CBlinkDlg,從對象列表中選擇對象 IDC_BUTTON1,從消息列表中選擇消息 BN_CLICKED,點擊按鈕 Add Function 添加新的函數 OnChangeCursorSpeed,在 CBlinkDlg 的方法 OnChangeCursorSpeed 中添加如下代碼。


void CBlinkDlg::OnChangeCursorSpeed()
{
    switch(cur_setting)
    {
    case 0:
        cur_setting=1;
        SetCaretBlinkTime(old_time);
        GetDlgItem(IDC_TEXT)->SetWindowText("Speed: Normal");
        break;
    case 1:
        cur_setting=2;
        GetDlgItem(IDC_TEXT)->SetWindowText("Speed: Slow");
        SetCaretBlinkTime(old_time*2);
        break;
    case 2:
        cur_setting=0;
        GetDlgItem(IDC_TEXT)->SetWindowText("Speed: Fast");
        SetCaretBlinkTime(old_time/2);
        break;
    }
}

  3.把下面兩行添加到類 CBlinkDlg 的構造函數中:
  old_time=GetCaretBlinkTime();
  cur_setting=0;
  4.在此類的頭文件中,添加下面暗紅色字體的行:

class CBlinkDlg : public CDialog
{
private:
    UINT old_time;
    int cur_setting;

// Construction
public:
    CBlinkDlg(CWnd* pParent = NULL);   // standard constructor
    ~CBlinkDlg();

  5.將下面的代碼添加到類的源文件 BlinkDlg.cpp 中。

CBlinkDlg::~CBlinkDlg()
{
    SetCaretBlinkTime(old_time);
}

  6.接著,重新進入 AppStudio。從菜單列表中選擇主菜單對象并添加標題為 Dialog 菜單,在此菜單上添加標題為 Change Caret Blink Speed、標識符為 ID_CARET_SPEED 的菜單項,保存此菜單,退出 AppStudio。
  7.在 ClassWizard 中,從對象列表中選擇對象 ID_CARET_SPEED,從消息列表中選擇消息 COMMAND,點擊按鈕 Add Function 添加新函數 ,在此方法中添加如下代碼。

void CMainFrame::OnCaretSpeed()
{
    CBlinkDlg dlg;

    dlg.DoModal();
}

  8.把下面的 include 文件行添加到源文件 MainFrm.cpp 的頂部:
  #include "BlinkDlg.h"
  9.編譯并運行此例子程序。

用法
  當用戶選擇對話框并點擊按鈕 Change Caret Blink 時,方法 OnChangeCursorSpeed 被調用,此方法檢查成員變量 cur_setting 的當前值,并在方法 SetCaretBlinkTime 中設置相應的速度。在對話框的構造函數中,通過對函數 GetCaretBlinkTime 的調用,來獲取插入光標閃爍速度的初始值。在例子程序中,將根據此初始設置值,使閃爍的時間或者減半(加快閃爍)或者倍增(減慢閃爍)從而來改變光標的閃爍速度。在對話框的析構函數中,通過方法 SetCaretBlinkTime 將插入光標閃爍速度設置為 Windows 的默認值,以確保對其它應用程序不產生影響。應該注意:整個一次閃爍的時間為所設置時間的兩倍,這是因為:這個時間除包括打開光標(光標變亮)所用的時間外,還要包括關閉光標(光標變暗)所用的時間。


主站蜘蛛池模板: 色天天综合网色鬼综合 | 天天爽夜夜爽一区二区三区 | 婷婷网五月天天综合天天爱 | 日本动态120秒免费 日本叼嗨 | 欧美视频在线免费看 | 小明www永久在线看 小黄鸭b站视频在线 | 亚洲网站在线 | 色吊丝最新永久免费观看网站 | 日本一区二区三区中文字幕视频 | 日韩一级片免费观看 | 色偷偷亚洲男人天堂 | 一本久道久久综合中文字幕 | 日韩影院在线 | 日本人成免费大片 | 伊人成人在线观看 | 日韩国产欧美成人一区二区影院 | 欧美无人区码卡二三卡四卡 | 五月激情综合丁香色婷婷 | 亚洲专区区免费 | 日韩中文字幕在线不卡 | 青青青在线 | 天天干天天操天天玩 | 欧美综合第一页 | 日韩人成免费网站大片 | 欧美中文日韩 | 日韩免费专区 | 午夜在线亚洲男人午在线 | 亚洲成人7777 | 亚洲资源在线 | 欧美天天在线 | 亚洲资源在线播放 | 天天色天天色 | 欧洲日韩视频二区在线 | 视频一区二区三区在线观看 | 青草国产在线观看 | 亚洲精品在线观看91 | 青青草狠狠操 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片免费看 | 天堂a免费视频在线观看 | 青草tv| 欧美综合图片一区二区三区 |