2011-07-13 23 views
0

私はC++を使用してXPのクイック起動ボタンの順序を変更しようとしていた、と私のコードは次のようになります。以下の3つのボタン(あるボタンの数のdefalutの制限がある場合XPのクイック起動ボタンの順序を変更するにはどうすればよいですか?

HWND hDesktop = GetDesktopWindow(); 
HWND hTray = FindWindowEx(hDesktop , 0, _T("Shell_TrayWnd") , NULL); 
HWND hReBar = FindWindowEx(hTray , 0, _T("ReBarWindow32") , NULL); 
HWND hToolbar = FindWindowEx(hReBar , 0, _T("ToolbarWindow32") , NULL); 
int Count = SendMessage(hToolbar, TB_BUTTONCOUNT, 0, 0); 
SendMessage(hToolbar, TB_MOVEBUTTON, Count-1, 0); 

クイック起動バーのクイック起動バーに表示されています)、コードはうまく動作しますが、3つ以上のボタンがあると、しばらくの間、注文が変わり、右の小さな矢印ボタンをクリックすると同じままです3のクイック起動ボタンを表示します。 誰もこのことが起こる理由を教えてもらえますか?私は3つ以上のボタンのためにそれを修正することができますか?

答えて

2

クイック起動領域がユーザーによって所有されており、アプリケーションがユーザーの背後にある順序を変更しないと予想されるため、正式にサポートされているAPIはありません。

ユーザーは、ボタンを並べ替えるための完全に合理的なメカニズムを持っています。そうしたい場合は、ボタンを押したままにしておく必要があります。

関連する問題