6

SetSystemCursor でシステム カーソルを変更しますが、DestroyCursor でシステム カーソルをノーマルにリセットしようとしても何も起こりません !!

何か案は ?

ありがとう !

4

2 に答える 2

6

文書化されているように、SetSystemCursor() 関数は渡されたカーソルを既に破棄しているため、再度破棄しても効果はありません。

後で復元できるように、古いカーソルのコピーを保存する必要があります。

// Global Variables:
HCURSOR hOldCursor;
...
   hOldCursor = CopyCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)));
   HCURSOR hNewCursor = CopyCursor(LoadCursor(hInstance, MAKEINTRESOURCE(IDC_MYCURSOR)));
   SetSystemCursor(hNewCursor, OCR_NORMAL);

そして、次のように復元します。

SetSystemCursor(hOldCursor, OCR_NORMAL);
DestroyCursor(hOldCursor);
hOldCursor = NULL;

カーソルを復元せずにプログラムが終了すると、かなりの苦痛が生じることに注意してください。私がこのコードをテストして経験したように。システム カーソルの変更は、デスクトップ上で実行される他のすべてのプログラムに全体的な影響を与えるため、非常に不親切です。

于 2012-06-03T15:29:40.713 に答える