ホーム » 2011 (ページ 4)

年別アーカイブ: 2011

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930

カテゴリー

アーカイブ

ブログ統計情報

  • 99,501 アクセス


文字列の輪郭を DXF に

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ウィンドウを透明に

SetLayeredWindowAttributes

#ifndef _INC_H_HELP_USER_DLL
#define _INC_H_HELP_USER_DLL

#include <WinUser.h>

////
//*******************************************************************************
// 関数名 :SetLayeredWindowAttributes
// 作成日 :’11/01/26
//*******************************************************************************
// C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\WinUser.h より

#ifndef LWA_COLORKEY

WINUSERAPI BOOL WINAPI SetLayeredWindowAttributes(HWND hwnd,COLORREF crKey,BYTE bAlpha,DWORD dwFlags) ;
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002

inline
BOOL Hlp_SetLayeredWindowAttributes (HWND hwnd,COLORREF crKey,BYTE bAlpha,DWORD dwFlags)
{
  HMODULE hDll = ::LoadLibrary(_T(“User32.dll”)) ;
  if (hDll == NULL) { return FALSE ; }
  HRESULT (WINAPI *pfSetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD) = NULL ;
  (FARPROC&)pfSetLayeredWindowAttributes = ::GetProcAddress(hDll,(“SetLayeredWindowAttributes”)) ;
  BOOL res = FALSE ;
  if (pfSetLayeredWindowAttributes != NULL) {
    res = pfSetLayeredWindowAttributes(hwnd,crKey,bAlpha,dwFlags) ;
    }
  ::FreeLibrary(hDll) ;
  return res ;
  }

#define Use_Help

#endif

////
//*******************************************************************************
// 関数名 :SetLayeredWindowAttributes
// 作成日 :’11/01/26
//*******************************************************************************

#ifndef WS_EX_LAYERED
#define WS_EX_LAYERED 0x00080000
#endif

inline
BOOL SetLayeredWindowAttributes(CWnd*wnd,COLORREF key,BYTE alpha=128,DWORD flags=LWA_COLORKEY)
{
  if (wnd == NULL) { return FALSE ; }
  HWND hwnd = wnd->GetSafeHwnd() ;
  if (hwnd == NULL) { return FALSE ; }
  BOOL result = FALSE ;
  LONG exStyle=::GetWindowLong(hwnd,GWL_EXSTYLE) ;
  ::SetWindowLong(hwnd,GWL_EXSTYLE,exStyle|WS_EX_LAYERED) ;
  #ifdef Use_Help
    result = ::Hlp_SetLayeredWindowAttributes(hwnd,key,alpha,flags) ;
  #else
    result = ::SetLayeredWindowAttributes(hwnd,key,alpha,flags) ;
  #endif
  return result ;
  }

#endif

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

MFC 6 で CHARFORMATW

SetSelectionCharFormat では,CHARFORMATA になっている様なので

CString faceName= FontFace.GetFaceName() ;
{
  CHARRANGE selCR ;
  m_CtrlRichEdit.GetSel(selCR) ;
  {
    m_CtrlRichEdit.SetSel(0,-1) ;
    #ifdef _UNICODE
      CHARFORMATW cf ; ::ZeroMemory(&cf,sizeof(CHARFORMATW)) ; cf.cbSize = sizeof(CHARFORMATW) ;
    #else
      CHARFORMAT cf ; ::ZeroMemory(&cf,sizeof(CHARFORMAT)) ; cf.cbSize = sizeof(CHARFORMAT) ;
    #endif
    ::TcsNCpy(cf.szFaceName,LF_FACESIZE-1,faceName,LF_FACESIZE-1) ;
    cf.dwMask = CFM_FACE ;
    #ifdef _UNICODE
      m_CtrlRichEdit.SendMessage(EM_SETCHARFORMAT,SCF_SELECTION,(LPARAM)&cf) ;
    #else
      m_CtrlRichEdit.SetSelectionCharFormat(cf) ;
    #endif
    }
  m_CtrlRichEdit.SetSel(selCR) ;
  }

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

System Volume Information フォルダ

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

WinXP MS 明朝 ‘?’ TTOutline

Win 2K / XP で MS 明朝 の ‘?’ のアウトラインが綺麗でない.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

メニューが左に…

設定を変更した記憶がないが,また,左にホップアップするようになったので...
設定は,「コントロールパネル」-「タブレット PC 設定」-「その他」タブ
メニューが左に

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

CRichEditCtrl の使用

ダイアログでCRichEditCtrlを使用する場合,InitInstanceなど,ダイアログ表示前にAfxInitRichEdit を呼び出す必要あり(これがないとダイアログが表示されない)
http://msdn.microsoft.com/ja-jp/library/76a787xf(VS.80).aspx
BOOL CXxxxApp::InitInstance()
{
 AfxEnableControlContainer();
 AfxInitRichEdit() ;
 …
 }

VC7 以降は AfxInitRichEdit2
http://msdn.microsoft.com/ja-jp/library/tt1cfb9f(v=VS.80).aspx

WinCtrl4.cpp より
BOOL PASCAL AfxInitRichEdit()
{
  _AFX_RICHEDIT_STATE* pState = _afxRichEditState;
  if (pState->m_hInstRichEdit == NULL)
  pState->m_hInstRichEdit = AfxCtxLoadLibraryW(L”RICHED32.DLL“);
  return pState->m_hInstRichEdit != NULL;
  }
BOOL PASCAL AfxInitRichEdit2()
{
  _AFX_RICHEDIT_STATE* pState = _afxRichEditState;
  if (pState->m_hInstRichEdit2 == NULL)
  pState->m_hInstRichEdit2 = AfxCtxLoadLibraryW(L”RICHED20.DLL“);
  return pState->m_hInstRichEdit2 != NULL;
  }
 
RC 内のコントロールのクラス名 RichEdit20A , RichEdit20W
http://support.microsoft.com/kb/261171
 
VC6 UNICODE exe で,CRichEditCtrl から DDX で文字列を取得すると正しく取れない.
例えば”㎡㎥m” が “㎡?m” になってしまう.
 RC のクラス名を “RICHEDIT” から “RichEdit20W” に変更して正しく取れる様になった.
CRichEditCtrl の使い方  RichEdit20W
 ”RichEdit20A” では,変わらず.
CRichEditCtrl の使い方  RichEdit20A
 
選択項目の変更の通知にはEN_SEL_CHANGEなど
これを使用する場合,OnInitDialogなどで,以下の様な呼び出しでの設定が必要.
 long       em = m_CtrlRichEdit.GetEventMask() ;
 m_CtrlRichEdit.SetEventMask(em|ENM_SELCHANGE) ;
 http://msdn.microsoft.com/ja-jp/library/bb774366.aspx
 
以下の様な方法で,FaceNameを使用可能
 CHARFORMAT  cf ;
 ::ZeroMemory(&cf,sizeof(CHARFORMAT)) ;
 cf.cbSize = sizeof(CHARFORMAT) ;
 m_CtrlRichEdit.GetSelectionCharFormat(cf) ;
 …  = cf.szFaceName ;

保存
 http://msdn.microsoft.com/ja-jp/library/b0k0ywek(v=VS.80).aspx
 

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

GetGlyphOutline

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

BrowseFile でファイル名を指定

Debug\EnvMove\RegExp\RegExpDg.cpp より
CString filter = _T(“登録ファイル (*.reg)|*.reg|All Files (*.*)|*.*||”) ;
BrowseFile  bf ;
bf.SetFilter(filter) ;
bf.SetDialogIsSave() ;
bf.SetInitialFolder(comDoc) ;
bf.SetFileName(outFile) ;
bf.SetFileName(::FolderAddLastSP(comDoc)+::GetFileName(outFile)) ;
if (bf.Browse()) {
 outFile = bf.GetSelectFile() ;
 }

BrowseFF.cxx

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Remote Desktop Mobile を追加

MS_RDP_v6.5.cab
http://forum.xda-developers.com/showthread.php?p=3592033
http://forum.xda-developers.com/attachment.php?attachmentid=174226&d=1239213874

X02T にインストール.

コンピュータ名ではうまく接続できなかった.
IP アドレスによる指定では接続可能.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Envy100 を追加

無線 LAN 環境に HP ENVY 100 を追加
・暗号化なしでは接続できる.
・WEP では,MAC アドレスのフィルタリングで,はじかれている様なレポート.

MN128-SOHO-IB3 + MN-WLC54g


プリンタドライバのインストールは,ハードが接続されないとインストールが完了できないみたい.
970cxi や 2550 で,よくデバッグに使用した,ドライバでの「プレビュー」はないみたい.


検索したら,以下の情報あり
WEP 暗号化および共有キー認証を使用してワイヤレス ネットワークに接続できない

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

WM_MOUSE??? ,WM_?BUTTON???

マウス関係のイベントを表示するコードと exe

手元のマウスでは,zDelta は 120
CTH-460 では,16 や 5
VirtualPC 内では統合機能を有効にしないとうまくイベントが上がらない.

以下の様なコードになっていたので,zDelta が 120 より小さい時は効果がなかった.
short zDelta= (short)HIWORD(msg->wParam) ;
int count = abs(zDelta)/120 ;
for (int index=0 ; index<count ; index++) {
  if (zDelta < 0) { … }
  else     { … }
  }

zDelta に対して,ある値をかけて 120 で割る様な操作が必要
ViewScrl.cpp より
int nToScroll = ::MulDiv(-zDelta, uWheelScrollLines, WHEEL_DELTA);

short zDelta= (short)HIWORD(msg->wParam) ;
double ratio = … ; // 1.4
ratio = (ratio-1.)*abs(zDelta)/WHEEL_DELTA ;
ratio += 1.0 ;

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

MFC Visual Studio 2010 SP1

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

CHS に REGEDIT4 .reg を適用すると…

WinXP CHS に REGEDIT4 の reg ファイルを適用すると,エントリなどが文字化けする(正しく入力できない).
実際は,REGEDIT4.reg ではなく,ANSI.reg  で,エントリなどに日本語などが含まれている場合.

REGEDIT4 の書式でも,UNICODE になってれば OK.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

T54W7U64 CSIDL_SYSTEMX86

CSIDL_PROGRAM_FILES C:\Program Files (x86)
CSIDL_PROGRAM_FILESX86 C:\Program Files (x86)
CSIDL_SYSTEM C:\Windows\system32
CSIDL_SYSTEMX86 C:\Windows\SysWOW64

2020/01/23 64bit.exe で出力

CSIDL_ADMINTOOLS               30   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools
CSIDL_ALTSTARTUP               1d   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
CSIDL_APPDATA                  1a   C:\Users\Iwao\AppData\Roaming
CSIDL_BITBUCKET                0a   
CSIDL_CDBURN_AREA              3b   C:\Users\Iwao\AppData\Local\Microsoft\Windows\Burn\Burn
CSIDL_COMMON_ADMINTOOLS        2f   C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
CSIDL_COMMON_ALTSTARTUP        1e   C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
CSIDL_COMMON_APPDATA           23   C:\ProgramData
CSIDL_COMMON_DESKTOPDIRECTORY  19   C:\Users\Public\Desktop
CSIDL_COMMON_DOCUMENTS         2e   C:\Users\Public\Documents
CSIDL_COMMON_FAVORITES         1f   C:\Users\Iwao\Favorites
CSIDL_COMMON_MUSIC             35   C:\Users\Public\Music
CSIDL_COMMON_OEM_LINKS         3a   
CSIDL_COMMON_PICTURES          36   C:\Users\Public\Pictures
CSIDL_COMMON_PROGRAMS          17   C:\ProgramData\Microsoft\Windows\Start Menu\Programs
CSIDL_COMMON_STARTMENU         16   C:\ProgramData\Microsoft\Windows\Start Menu
CSIDL_COMMON_STARTUP           18   C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
CSIDL_COMMON_TEMPLATES         2d   C:\ProgramData\Microsoft\Windows\Templates
CSIDL_COMMON_VIDEO             37   C:\Users\Public\Videos
CSIDL_COMPUTERSNEARME          3d   
CSIDL_CONNECTIONS              31   
CSIDL_CONTROLS                 03   
CSIDL_COOKIES                  21   C:\Users\Iwao\AppData\Local\Microsoft\Windows\INetCookies
CSIDL_DESKTOP                  00   C:\Users\Iwao\Desktop
CSIDL_DESKTOPDIRECTORY         10   C:\Users\Iwao\Desktop
CSIDL_DRIVES                   11   
CSIDL_FAVORITES                06   C:\Users\Iwao\Favorites
CSIDL_FONTS                    14   C:\WINDOWS\Fonts
CSIDL_HISTORY                  22   C:\Users\Iwao\AppData\Local\Microsoft\Windows\History
CSIDL_INTERNET                 01   
CSIDL_INTERNET_CACHE           20   C:\Users\Iwao\AppData\Local\Microsoft\Windows\INetCache
CSIDL_LOCAL_APPDATA            1c   C:\Users\Iwao\AppData\Local
CSIDL_MYDOCUMENTS              0c   
CSIDL_MYMUSIC                  0d   C:\Users\Iwao\Music
CSIDL_MYPICTURES               27   C:\Users\Iwao\Pictures
CSIDL_MYVIDEO                  0e   C:\Users\Iwao\Videos
CSIDL_NETHOOD                  13   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Network Shortcuts
CSIDL_NETWORK                  12   
CSIDL_PERSONAL                 05   C:\Users\Iwao\Documents
CSIDL_PRINTERS                 04   
CSIDL_PRINTHOOD                1b   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
CSIDL_PROFILE                  28   C:\Users\Iwao
CSIDL_PROGRAM_FILES            26   C:\Program Files
CSIDL_PROGRAM_FILES_COMMON     2b   C:\Program Files\Common Files
CSIDL_PROGRAM_FILES_COMMONX86  2c   C:\Program Files (x86)\Common Files
CSIDL_PROGRAM_FILESX86         2a   C:\Program Files (x86)
CSIDL_PROGRAMS                 02   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
CSIDL_RECENT                   08   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Recent
CSIDL_RESOURCES                38   C:\WINDOWS\resources
CSIDL_RESOURCES_LOCALIZED      39   
CSIDL_SENDTO                   09   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\SendTo
CSIDL_STARTMENU                0b   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Start Menu
CSIDL_STARTUP                  07   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
CSIDL_SYSTEM                   25   C:\WINDOWS\system32
CSIDL_SYSTEMX86                29   C:\WINDOWS\SysWOW64
CSIDL_TEMPLATES                15   C:\Users\Iwao\AppData\Roaming\Microsoft\Windows\Templates
CSIDL_WINDOWS                  24   C:\WINDOWS
CSIDL_xxxxxxx                  0f   
CSIDL_xxxxxxx                  32   
CSIDL_xxxxxxx                  33   
CSIDL_xxxxxxx                  34   
CSIDL_xxxxxxx                  3c   
CSIDL_xxxxxxx                  3e   
CSIDL_xxxxxxx                  3f   

 Z170S0  CSIDL
SpFolder.zip

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

登録エントリ (.reg) ファイルの構文

kb 310516 登録エントリ (.reg) ファイルを使用してレジストリ サブキーおよび値を追加、変更、または削除する方法
kb 256986 上級ユーザー向けの Windows レジストリ情報

reg export  key file
Win 7 で file が存在する時,”y/n” の確認が入る.XP ではない.
ShellExec クラス経由で呼び出していたので,file は更新されず原因がわかり難かったのでメモ.

{
 CString command = _T(“Reg.exe”) ;
 CString param ;
 {
  CString dateTime= CTime::GetCurrentTime().Format(_T(“%y%m%d%H%M%S”)) ;
  CString tmpFile = ::FolderAddLastSP(::GetTempPath()) + _T(“M___.tmp\\Reg\\”) + dateTime + _T(“.reg”) ;
  ::CreateEmptyFile(tmpFile) ;
   CFile::Remove(tmpFile) ;
  param = _T(“export hkcu\\”) + subKey + _T(” “) + tmpFile ;
  }
 {
  ShellExec se ;
  se.SetFile(command) ;
  se.SetNon2QMark(TRUE) ;
  se.SetParamaters(param) ;
  se.SetShowCmd(SW_HIDE) ;
  se.Execute() ;
  }
 }

//*******************************************************************************
// 関数名 :文字列に変換
// 作成日 :’10/03/05
//*******************************************************************************
CString RegAccessF::ToString (HKEY hKey,LPCTSTR subKey,LPCTSTR entry)
{
 HSecKey = GetSecKey(hKey,subKey,KEY_QUERY_VALUE) ;
 if (HSecKey == NULL) { return _T(“”) ; }
 Entry = entry ;
 Type = REG_NONE ;
 Count = 0 ;
 wchar_t wcEntry[1024] ;
 ::ToStringWC(wcEntry,countof(wcEntry),Entry) ;
 LONG checkStatus = ::RegQueryValueExW(HSecKey,wcEntry,0,&Type,NULL,&Count) ;
 if (checkStatus != ERROR_SUCCESS) { return _T(“”) ; }
 CByteArray dataAry ; dataAry.SetSize(Count+10) ;
 BYTE* dataPtr = dataAry.GetData() ;
 LONG get__Status = ::RegQueryValueExW(HSecKey,wcEntry,0,&Type,dataPtr,&Count) ;
 if (checkStatus != ERROR_SUCCESS) { return _T(“”) ; }
 CString str ;
 str.Format(_T(“\”%s\”=hex(%x):”),entry,Type) ;
 for (int index=0 ; index BYTE b1 = dataAry[index] ;
  CString bStr ; bStr.Format(_T(“%02x,”),b1) ;
  str += bStr ;
  }
 CloseSecKey() ;
 return str ;
 }
 

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.