• ベストアンサー

アイコンの自動整列の属性取得 API

始めまして。質問させて下さい。 VC++ 2008 MFCで開発しております。 デスクトップ右クリックからの アイコンの自動整列-等間隔に整列の属性を変更したいと考えております。 取得/変更ができるAPIはありますでしょうか? デスクトッププロパティ取得関数にフラグを指定して 取得するのだと思いますが、調べてみたところそれらしいAPIを見つけられませんでした。 ご存知のかたがおられましたらご教授下さい。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

もう一つ、「アイコンを自動整列」の方は、hwndSysListView を取得するところまでは ANo2 と同じで、hwndSysListView を使用して LONG lngStyle = GetWindowLong( hwndSysListView, GWL_STYLE ); if( lngStyle & LVS_AUTOARRANGE ) {   MessageBox( NULL, _T("自動整列です。"), _T("GetAutoArrange" ), MB_ICONINFORMATION ); } else {   MessageBox( NULL, _T("自動整列ではありません。"), _T("GetAutoArrange" ), MB_ICONINFORMATION ); } のような感じで判定可能です。

youdoukou
質問者

お礼

tsukasa-12r様 ご回答ありがとうございました。 おかげさまで、機能が実現できました。 ありがとうございました。

その他の回答 (2)

回答No.2

「アイコンを等間隔に整列」かどうかは、他にも方法があるのかもしれませんが、次のようなコードで取得可能です。 ======================================================= #include <windows.h> #include <commctrl.h> int _tmain(int argc, _TCHAR* argv[]) {   HWND hwndTop = FindWindow( _T("Progman"), _T("Program Manager") );   if( hwndTop ) {     HWND hwndChild = GetWindow( hwndTop, GW_CHILD );     if( hwndChild ) {       HWND hwndSysListView = GetWindow( hwndChild, GW_CHILD );       if( hwndSysListView ) {         DWORD dwExStyle = ( DWORD )SendMessage( hwndSysListView, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );         if( dwExStyle & LVS_EX_SNAPTOGRID ) {           MessageBox( NULL, _T("等間隔整列です。"), _T("GetSnapToGrid" ), MB_ICONINFORMATION );         } else {           MessageBox( NULL, _T("等間隔整列ではありません。"), _T("GetSnapToGrid" ), MB_ICONINFORMATION );         }       }     }   }   return 0; } ======================================================= ( インデントのため、全角空白を使用しています。) 設定するには、LVM_SETEXTENDEDLISTVIEWSTYLE を使用します。

回答No.1

# 回答ではありません。 >アイコンの自動整列-等間隔に整列の属性を変更したい それは特定のアプリケーションからでしょうか? そこらへんの設定はユーザ個々で行うので、 勝手に変わるようなのはあまり良くないと思うのですが。 (たとえば、自動整列でない場合、そのユーザとしては最適なところに アイコンを配置したにも関わらず、そのアプリを起動したとたんに自動整列になってしまった。 せっかく使いやすい位置に置いてあったのになんだよ(怒)!となる)

youdoukou
質問者

お礼

bluecampus様 ご回答ありがとうございます。 当然の事だと思います。 私もアプリから個人設定を切り替えるソフトウェアは使用しません。 当然、動作後に戻します。 申し訳ないですが、ご指摘の内容は必要ありません。

関連するQ&A

  • Softの情報取得 APIについて

    お願いします。 急いでいるので、文面等問題ありましたら、申し訳ございません。 早速ですが、PC内のインストールされているソフト情報を取得したいのですが、API等で取得可能でしょうか?(ソフト名等) APIの関数を教えていただきたいです。また、関連するホームページ等もあればおしえてくださいませ。 作成する言語 出来れば、VB またはVC++ 大変申し訳ありません。よろしくお願いします。

  • Windows2000でデスクトップでアイコンが等間隔整列できない・・・・・。

    最初、間違って別のユーザーIDを作ってログインしてしまい、 それを削除→そのときのデスクトップの内容をAdministratorにコピーしたのですが、デスクトップでアイコンが等間隔整列できなくなってしまいました。 C:\Documents and Settings\All Users\デスクトップ            ↓ C:\Documents and Settings\Administrator\デスクトップ みたいに属性を全部変えることはできますか?

  • デスクトップのアイコンの幅を小さくしたい

    今週、いきなりパソコンがおかしくなり、デスクトップの アイコンの整列間隔が大きくなってしまいました。 整列間隔を小さくもとに戻すにはどうすればいいでしょうか。 画面のプロパティをいじっていますが、変わりません。

  • ダイアログ属性の変更

    はじめまして。 質問させてください。 VC++ 2005 MFC で開発しております。 ダイアログをリソースビューで開いた場合の 表示のプロパティをソース上から変更する方法はありますでしょうか? 小生「表示」-「Border」を [サイズ変更枠]から[細枠]に切り替えたいと考えております。 以上になります。 お詳しい方がおられましたらご教授お願い致します。

  • デスクトップのアイコンを等間隔に

    WINDOWS2000で、デスクトップのアイコンを等間隔にしたいのですが、「右クリック」から「等間隔に整列」を選ぶ作業をしないで、常にデスクトップのアイコンが等間隔になるような設定はあるのでしょうか? なければ、アイコンをクリックすることで、デスクトップのアイコンが等間隔になるようなアイコンを作りたいのですが、アイコンのプロパティのリンク先にどのような記述をすればよいか教えてください。

  • VBでRegisterWindowMessage関数を利用したメッセージの取得

    ICカードのリーダにアクセスする開発ツールでコールバック関係のAPIが提供されているのですが、「メッセージ値の取得はWindows APIのRegisterWindowMessage関数を利用して行う」とマニュアルにあり、呼び元でどのようにコーディングしたらよいか知識不足の為、わかりません。。。 API開発元に照会するべき事は照会しようと考えていますが、VBにてRegisterWindowMessage関数を利用したメッセージの取得方法についてサンプル等あれば、教えてください。 (VBほとんど初心者に近い腕前です。よろしくお願いします。) 参考の為にAPIの引数を記載します。(APIはVC++及びVBにて使用可能でありマニュアル上の記載はVC++でされています。)   関数名:set_call_back_parameters 引数(in): int handle; //ハンドラ unsigned char* message_of_card_find;     //カード認識時送信メッセージ unsigned char* message_of_card_loss;    //カード認識NG送信メッセージ unsigned long inerval;    //認識行う間隔 ミリ秒 unsigned long retry_count    //リトライカウント値 回数  ※引数のうちhandleがメッセージ値取得に関連していると思われるのですが、何をセットするのかわかりません。 (API開発元に照会すべき事であればそうします。)

  • MFCで、FTPファイルの属性変更

    MFCで、FTPクライアントを作成しています。 ファイルのアップロードは出来たのですが、属性変更の仕方が分からず 困っています。 どなたか、ご教授ください。 よろしくお願いします。 環境:WinXP+VC6

  • VC++6.0 MFC GetCommandLine()で取得したコマンドラインをすでに起動しているプログラムに渡す。

    お世話になります。 VC++6.0 MFC で開発しております。 プログラムAでGetCommandLine()で取得したコマンドラインをすでに起動しているプログラムBに渡すにはどのような関数を使えばよいのでしょうか? お手数ですが、何卒よろしくお願いします。

  • フォルダの作成日の取得方法を教えてください

    フォルダーの作成日を取得するような関数か技法を探しています。 いろいろなサイトを探していますが見つかりません。 ご存知の方、ご教授願えないでしょうか。 よろしくお願いします。 ********************** 開発環境 WinXP SP2 VC++ 6.0 MFC ********************** (ファイル関連ならたくさんあるのに・・フォルダない・・)

  • MSXMLでの属性の存在確認法

    開発環境として、Visual C++ 2008 Express Editionを使用しています。 getAttributeを使用して、XMLの属性を取得しようとしているのですが、取得しようとしている属性が存在しない場合VCから、 「test.exe の 0x10266c70 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。」 と表示されます。 何か属性が存在するかどうか確認するような方法は無いものでしょうか?