アプリ版:「スタンプのみでお礼する」機能のリリースについて

始めまして。質問させて下さい。

VC++ 2008 MFCで開発しております。

デスクトップ右クリックからの
アイコンの自動整列-等間隔に整列の属性を変更したいと考えております。
取得/変更ができるAPIはありますでしょうか?

デスクトッププロパティ取得関数にフラグを指定して
取得するのだと思いますが、調べてみたところそれらしいAPIを見つけられませんでした。

ご存知のかたがおられましたらご教授下さい。
宜しくお願い致します。

A 回答 (3件)

# 回答ではありません。



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

bluecampus様

ご回答ありがとうございます。

当然の事だと思います。
私もアプリから個人設定を切り替えるソフトウェアは使用しません。

当然、動作後に戻します。
申し訳ないですが、ご指摘の内容は必要ありません。

お礼日時:2010/02/10 10:31

「アイコンを等間隔に整列」かどうかは、他にも方法があるのかもしれませんが、次のようなコードで取得可能です。



=======================================================
#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 を使用します。
    • good
    • 0

もう一つ、「アイコンを自動整列」の方は、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 );
}

のような感じで判定可能です。
    • good
    • 0
この回答へのお礼

tsukasa-12r様

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

ありがとうございました。

お礼日時:2010/02/12 18:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!