Iwao myds

dev.mish.work へ移行しました.

この画面は、簡易表示です

Iwao

VC 6 RC ファイル内の DISCARDABLE

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


いつも場所を忘れるので

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ

  • カテゴリー:

LBT-HS121C2 を追加

取扱説明書には特に記述はないようであるが,…
Win 7 環境では USB アダプタのドライバをインストールしてはいけない?
PC とヘッドセットとの接続は可能であったが,PC と X02T との接続がうまくない.

Web で検索かけると取説の PDF では,Win 7 には必要なしとのこと.
「プログラムと機能」からドライバ類をアンインストールして再起動.
PC と X02T との接続が可能になった.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ

  • カテゴリー:

GetLongPathName 存在しないと失敗

http://msdn.microsoft.com/ja-jp/library/cc429335.aspx

簡略化するために HelpAPI.hxx に以下を用意.
inline CString GetLongPathName (LPCTSTR fileName)
{
 CString longPath ;
 UINT size = _MAX_PATH ;
 DWORD len  = ::GetLongPathName(fileName,longPath.GetBuffer(size),size) ;
 longPath.ReleaseBuffer() ;
 if (len == 0) { return fileName ; }
 return longPath ;
 }

ファイルが存在しないと関数が失敗する様なので,
 ::CreateEmptyFile(sFile) ;
 CString  lFile = ::GetLongPathName(sFile) ;
 

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


DImageS の配列で,…

以下の様な DImageS の配列で,要素の表示が 1 回目しかできなかった.
 CString selFile = DImgAry.GetAt(selIndex).GetFileName() ;
 DImgAry[selIndex].Draw(&m_Image) ;

配列を直接使用するのではなく,DImageS にファイル名を取得してからでは OK .
 DImageS dImg ;
 dImg.SetFileName(selFile) ;
 dImg.Draw(&m_ImageMBA) ;
 

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


CEdit::SetSel である位置を選択

SetSel を UpdateData(FALSE) の呼び出しより後に使用すれば良い.
UpdateData(TRUE) ;

// 例えば文字列の最後へ
int pos = m_SelectStr.GetLength() ;
m_CtrlSelectStr.SetSel (pos,pos) ;

// UpdateData(FALSE) ;
または,UpdateData を使用しないで取得,更新する.
CEdit::Setsel の使い方

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ

  • カテゴリー:

画像付ファイル名のリストボックス

ヘッダファイルへの追加
 #include “DImgS.hxx” または “DImg.hxx”
 #include “ODrawDcM.hxx”

 ListBoxDocMF m_ListDImage;
 CArray <DImageS,DImageS> DImgAry ; または <DImage,…>

OnInitDialog など
 m_ListDImage.SubclassDlgItem(IDC_XXXX_FILE_LIST,this) ;
 m_ListDImage.Init() ;
 m_ListDImage.ResetContent() ;

リストに表示するファイルの設定
 DImgAry.RemoveAll() ;
 for (int dIndex=0 ; dIndex<addFiles.GetSize() ; dIndex++) {
  DImageS dImg ; または DImage
  dImg.SetFileName(addFiles[dIndex]) ;
  DImgAry.Add(dImg) ;
  }
 m_ListDImage.ResetContent() ;
 for (int rIndex=0 ; rIndex<DImgAry.GetSize() ; rIndex++) {
  CString fileName = DImgAry.GetAt(rIndex).GetFileName() ;
  m_ListDImage.AddString(fileName,fileName) ;
   // 以下は登録時に画像を付ける場合
  CString mfName = CacheFile::GetCF_Name(fileName,1000) ;
  if (::FileIsExist(mfName)) {
   m_ListDImage.SetAtDocMF(rIndex,mfName) ;
   }
  else {
   HICON icon = DImageS_GetIcon(fileName) ;
   m_ListDImage.SetAtIcon(rIndex,icon) ;
   }
  }

DImageS クラスでなく DImage クラスを使用した場合は,ImageDMF クラスをサポートする形になる.
DImageS クラスでは,対応付けた EMF での動作になる.
現状の ListBoxDocMF では Shell Extension を利用できないみたい.
別のクラスを用意するか変更が必要.間にListBoxDocSE などを用意するか?
 

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


コントロールをサブクラス化した時のエラー

ダイアログのコントロールをサブクラス化した時の実行時エラーの対応.
m_ListXxx.SubclassDlgItem(IDC_Xxxx_LIST,this) ;
—————————
Microsoft Visual C++ Debug Library
—————————
Debug Assertion Failed!
Program: …\Xxxx\Xxxx\Debug\Xxxx.exe
File: wincore.cpp
Line: 321
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
—————————
中止(A)   再試行(R)   無視(I)
—————————
以前 CListBox として使用していたので,変数として割り付けられていた.
変数を削除してOK.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ

  • カテゴリー:

FaceA::Search の高速化

データが増えると遅かったので改良
BOOL FaceA::Search(const long edgeS,const long edgeE,long* left_Face,long* rightFace) const
{
  if (left_Face == NULL) { return FALSE ; }
  if (rightFace== NULL) { return FALSE ; }
  *left_Face = *rightFace = -1 ;
  BOOL lfFound = FALSE ;
  BOOL rfFound = FALSE ;
   static long LastFace = 0 ;
  int index = 0 ;
   for (index=LastFace ; index<GetCount() ; index++) {
     Face f = Faces[index] ;
     if (!f.Search(edgeS,edgeE,&lfFound,&rfFound)) { continue ; }
     if (*left_Face<0 && lfFound) { *left_Face = index ; }
     if (*rightFace<0 && rfFound) { *rightFace = index ; }
     if (*left_Face >= 0 && *rightFace>=0) {
       LastFace = min(*left_Face,*rightFace) ;
       return TRUE ;
       }
     }
  for (index=0 ; index<GetCount() ; index++) {
    Face f = Faces[index] ;
    if (!f.Search(edgeS,edgeE,&lfFound,&rfFound)) { continue ; }
    if (*left_Face<0 && lfFound) { *left_Face = index ; }
    if (*rightFace<0 && rfFound) { *rightFace = index ; }
    if (*left_Face >= 0 && *rightFace>=0) {
      LastFace = min(*left_Face,*rightFace) ;
      return TRUE ;
      }
    }
  return FALSE ;
  }

前に検索して一致した所から再検索するコードを追加.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。