2008-01-01から1年間の記事一覧

XAMLでオーナードローボタン(カスタムドローボタン)の作成

XAMLではもはやオーナードローボタンとかいう言い方はしないかもしれないが作成方法について。 MSDNの”ボタン ControlTemplate の例”に載っているソースコードを下記の場所に全てコピペする <Application.Resources> <ResourceDictionary> </ResourceDictionary> </Application.Resources>あとは必要な箇所を変更すれば良いだけなのだが、MSDNに載って…

XAMLにてImageコントロール内に画像を表示する

プロジェクトファイルのあるディレクトリにimageフォルダがあり、そのフォルダ内にtest.jpgがあるとした場合 ①ソリューションエクスプローラにimageフォルダを作成し、追加、既存の項目よりtest.jpgを入れる ②test.jpgファイルのプロパティでビルドアクショ…

ジェネリックなデリゲートの使い方

C#

下記はListクラスのメンバForEachにおける使い方 void MyAction(int x) { Console.WriteLine(x); } int[] data = { 9, 2, 12, 17, 8, 1, 19 }; List list = new List(data); // 使い方その1 Action myActionDelegate = new Action(MyAction); list.ForEach(m…

Resources.resxファイルに埋め込んだ画像ファイルをImageオブジェクトに突っ込む

WPF

Streamを使用するならResources.resxファイルに画像ファイルを埋め込んでおく必要性があまり感じない・・・。 これもゴチャゴチャしているので何とかなら無いものか System.Drawing.Bitmap gifBitmap = Properties.Resources.numericExpression01; // gif Me…

背景画像を設定する

WPF

もっと簡単な方法があったのでメモ。 // Create source. BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri("test.png", UriKind.Relative); bi.EndInit(); // Create the image element. Image simpleImage = new Image(); simp…

バイナリファイルからデータを取得する(C#)

FileStreamを利用する。紛らわしいクラスが複数あるのでFileStreamのメンバを豪華にしてFileStreamだけにしたほうが良いのではないかと思ったりする StreamReader → テキストファイル向け。名前からしてテキストファイル向けかわからない! Stream → 抽象ク…

フォーム内に子フォームを配置する(MDIではない)

プロジェクトから普通にフォームを追加した後、下記のように記述する。 ChildForm childForm = new ChildForm(); this.childForm.TopLevel = false; // thisは親フォーム this.childForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this…

Tomcat6.0.18のセットアップに関しての注意

Tomcat6.0.18をインストールし、http://localhost:8080/にアクセスしてもレスポンスが返ってこない場合がある。その場合は下記の点をチェックする・Tomcatのインストールディレクトリ\conf\tomcat-users.xmlの文字コードをutf-8に変更する ・他のアプリで808…

eclipseセットアップに関して

PHP開発環境を手っ取り早く構築するためにはEclipse(Pleiades)を使用する。 デバッグもできるようにするためにはZendDebuggerも組み込む。 ZendDebuggerを組み込んだ場合、Eclipseのソフトウェアの更新をしないと Incompatible Debug Server Versionとエラー…

error C2248 に関してその2

昨日の続き。 下記のテストクラス class CTestClass { public: CTestClass() { ::AfxMessageBox(_T("コンストラクタ")); } CTestClass(const CTestClass& obj) { ::AfxMessageBox(_T("コピーコンストラクタ")); } CTestClass& operator=(const CTestClass& o…

error C2248 に関して

VC++2003は問題なかったがVC++2005でビルドすると error C2248: 'CObject::CObject' : private メンバ (クラス 'CObject' で宣言されている) にアクセスできません とCFileクラス(CFileクラスはCObjectを継承している)からエラーが出ている。 何のことかよく…

バイナリStreamの書き出し方法

プログラミング的には難しくないが、 クラスの設計思想に対して私の認識が合わなく一苦労。 いつでも思い出せるようにメモしておく。 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net; using System…

緯度・経度から住所を取得する

以前、緯度・経度から住所を取得できるライブラリとか無いか探したが 見つからなかったのであきらめていた。下記のサイトでそのようなAPIを 提供しているということを知り早速試してみた。 GeoPoint APIのAPIキーを取得する サイトの説明を追っていけば取得…

youtubeデスクトップクライアントサンプルを動かす

1.参照で示しているページからVisualStudio2005向けのソリューション一式をダウンロードする 2.http://code.google.com/apis/youtube/dashboard/developerSignupとhttp://code.google.com/apis/youtube/dashboard/ で必要事項を記述し、"Client ID"と"Develo…

寸言 覚書

・客観的なビジネスプランはたいてい役に立たない。自分の熱い主観を企画書にぶち込め。 ・ほとんどの人は「会社がお金を儲けること」へのこだわりが薄い。だから、「会社がお金を儲けること」にこだわって仕事すると、上司からも会社からも高く評価される。…

longlongの書式指定子

VS2005においてlonglong型の書式指定子として%lldを 使用していたのだが、VS2003でコードを動かすとどうもうまくいかない。 ググッて見ると下記のこのサイトを発見。 VC++2003.NET では『%lld』、『%llu』は使えないようです。 VC2003では%I64dですか。ふむ…

ノートPC(Vista) キー配列の変更

ノートPC(Vista)のCapsLockキーに左Ctrlキーを割り当てたい。 デスクトップPCのキーボートなら左Ctrlキーが大きいから まだ我慢できるがノートPCのキーボードはFnキーとウインドウズキーの 真ん中にあり打ちにくい。しかもCapsLockが無駄に良い場所にある・…

寸言 覚書

・自分の適性や才能にあった職がなければ、作ってしまえ。 ・運と時流を読まぬ努力は、努力の名に値しない。 ・一流と二流の違いは、仕事の責任が一人称か二人称かの違いである。三流以下は当然三人称である。 ・「見ている人は見ている」の人とは、顧客のこ…

カスタムボタンの作成

図のように普通状態のときは白、マウスオーバーの時は黄色、押した時は青色 のように動作するボタンが欲したかったのでカスタムボタンを作成。まず、プロジェクトから、追加、ユーザーコントロールを選択し、 新しい項目の追加画面でカスタムコントロールを…

7-ZIP32.DLLを使用しフォルダごと圧縮するその2

7-ZIP32.DLLをC#で利用する パスがロングネームだと失敗するときがあるのでショートネームにしている [DllImport("7-zip32.dll", CharSet = CharSet.Ansi)] private extern static int SevenZip(IntPtr hWnd, string strCommandLine, StringBuilder strOutPu…

MFCDLL内の関数をC#で呼び出す

過去の資産をC#で利用したい。 その基本的なやり方を示します。 MFCDLLのプロジェクトを作成し、 apiModule.cppを追加し下記のように記述します。 defファイルに関数名を記述します。apiModule.cpp #include "StdAfx.h" void WINAPI Dll_ShowMessage(const C…

画像の一部をそのサイズ(長方形)で保存する方法 GIMP

photoshopだと 保存したい箇所を選択(長方形領域) コピー 新規作成(コピー長方形領域のサイズがデフォルト) 貼り付け 保存 で済むのだがGIMPだと、新規作成の際にコピー長方形領域のサイズが デフォルトになっていないので保存がややこしい。その保存方法を…

USBメモリを挿した際の自動再生ウインドウをキャンセルする

USB機器とデータをやり取りするアプリを作っていると、 USB機器をPCに挿した際に自動再生ウインドウが アプリの前面に表示されてしまう。そのウインドウを表示させない方法。OnInitDialogでQueryCancelAutoPlayのメッセージを登録する m_cancelWindowMessage…

7-ZIP32.DLLを使用しフォルダごと圧縮する

使いやすいように関数ポインタの型をtypedefする typedef int (WINAPI *SevenZipFunc_)(const HWND _hwnd, LPCSTR _szCmdLine, LPSTR _szOutput, const DWORD _dwSize); ボタンを押したら圧縮を開始 LGPLのため動的に呼び出すようにしている void CMy7zipTes…

リストコントロールアイテムのカスタムドロー

NM_CUSTOMDRAWのイベントハンドラに下記のように記述する。 アイテムの設定を変更するとそれ以降のアイテムに影響するので デフォルト設定をしておかなければならない void CnmCustomDrawTestDlg::OnNMCustomdrawListNum(NMHDR *pNMHDR, LRESULT *pResult) {…

画像を透過色で透過する

右の画像の赤色の部分を透過したい 下記はMFCでのやり方 m_cBitmapはCBitmap型 IDB_BMP_IMGはイメージのリソースID 赤色で透過したいのでRGB(255, 0, 0) OnInitDlgで m_cBitmap.LoadBitmap(IDB_BMP_IMG); OnPaintで CPaintDC dc(this); BITMAP bmp; m_cBitma…

アプリケーションのインストールパスの取得方法

アプリケーションをインストールするとHKEY_LOCAL_MACHINEのSoftware\\Microsoft\\Windows\\CurrentVersion\\Uninstall に情報が書き込まれるのでそれを利用してアプリケーションのインストールパスを取得する。 下記のコードはGoogle Earthの場合。参考: ht…

UTF8変換

厳密ではないけどマルチバイト環境でもunicode環境でも使えるUTF8に変換する関数。 マルチバイト環境の時にMultiByteToWideCharとWideCharToMultiByteを 使わなければいけないのはどうにかならないものか。 int GetUTF8String(const TCHAR *pInBuf, char *pO…

ソート覚書

今までわざわざ面倒な方法でソートしていた。 こんな簡単にできるのに一体何をやっていたのだろう。 #include "stdafx.h" #define _CRT_RAND_S // の直前に#define すること #include #include #include #include #include class CSizeLess { public: bool o…

CAtlRegExpの使い方

boost::regexを試そうと思っていたが先にATLのCAtlRegExpを試してみる。文字列が正規表現にマッチしていなくても matchContext.m_uNumGroupsは中括弧括りの個数分だけ値を保持するものなのか・・・。 #include "stdafx.h" #include // CAtlRegExp #include i…