ダイアログで乗っているコントロールではなくフォーム自身でキーを拾いたいときは、CDialog::PreTranslateMessage()をオーバーライドする。
メッセージを処理したなら return TRUEを、未処理なら CDialog::PreTranlateMessage() を呼ぶこと。
BOOL CWinVendDlg::PreTranslateMessage(MSG* pMsg) . . . 本文を読む
Option Strict とか入れてると、Byte データを Integer に入れるのとかでもいちいちエラーになる。
そんなときには、
CBool(expression)
CByte(expression)
CChar(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(e . . . 本文を読む
VB2008 から、名前空間が導入され、フォーム系のクラスに存在する right プロパティと区別するため、rRight(), Left() は下記のように名前空間からフル指定する必要がある。
Microsoft.VisualBasic.Right()
Microsoft.VisualBasic.Left()
なお、Mid() は名前がかぶらないのでそのまま使える。 . . . 本文を読む
VB2008 では、異なるスレッド間で相互にコントロールの値を変更するアクセスができない(もともとVBはスレッドセーフではなかった)。
この場合、正しくは Invoke プロパティを使う方法、ワーカースレッドを使う方法などが正しい回避策だが、ちょっとしたプログラムで手軽にエラーを避けるには、フォームのプロパティで CheckForIllegalCrossThreadCalls を False にし . . . 本文を読む
__cplusplus
C++コンパイラ(ソースが cpp ) が動いていると定義される。C関数を混在して使う場合に必要になる。
#ifdef __cplusplus
extern "C" {
#endif
int cfunc(void);
#ifdef //__cplusplus
_WIN32
windows 環境向けにコンパイルされるときに定義される。他環境 . . . 本文を読む