mfc-ml

1998年11月

30

[mfc 12201] リストビューのNM_RETURNハンドラ

メガリスと申します。

リストビューでアイテムが選択された状態でEnterキーを
押された場合にNM_RETURNハンドラで処理をすると思いま
すが、ここで選択されたアイテムの取得がうまくいきま
せん。
以下のようなコードを書いてみたのですが、動作が安定
しません。

void CTest::OnReturn(NMHDR* pNMHDR, LRESULT* pResult)
{
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    int iSelect = pNMListView->iItem;
    // これでiSelectに選択されたアイテムの位置が取得
    // できる?
}

動作が安定しないというのは、リストビューで先頭に表示
されているアイテムを選択してEnterキーを押した場合に
きちんとiSelectが0(つまり先頭)になる場合もあれば、
あまりにもかけ離れた値が入る場合もあるのです。
# 毎回同じ動作というわけではないので、原因がはっきり
# しないのですが。

このような場合の処理でおかしい点や解決方法が分かれば
教えてください。よろしくお願いします。

--
m...@tky2.3web.ne.jp
30

[mfc 12201] リストビューのNM_RETURNハンドラ

メガリスと申します。

リストビューでアイテムが選択された状態でEnterキーを
押された場合にNM_RETURNハンドラで処理をすると思いま
すが、ここで選択されたアイテムの取得がうまくいきま
せん。
以下のようなコードを書いてみたのですが、動作が安定
しません。

void CTest::OnReturn(NMHDR* pNMHDR, LRESULT* pResult)
{
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    int iSelect = pNMListView->iItem;
    // これでiSelectに選択されたアイテムの位置が取得
    // できる?
}

動作が安定しないというのは、リストビューで先頭に表示
されているアイテムを選択してEnterキーを押した場合に
きちんとiSelectが0(つまり先頭)になる場合もあれば、
あまりにもかけ離れた値が入る場合もあるのです。
# 毎回同じ動作というわけではないので、原因がはっきり
# しないのですが。

このような場合の処理でおかしい点や解決方法が分かれば
教えてください。よろしくお願いします。

--
m...@tky2.3web.ne.jp
30

[mfc 12200] FTPプログラムについて

お世話になっています。曽根田です。

はじめにMLでも話題になていましたが、質問にたいする自己レスです。
「 [mfc 11467] 32ビットビットマップから24ビットに変換する方法」
渡辺 裕朗さん!ありがとうございました!!アドバイスのおかげで
簡単に変換することができました。
レスはMLの数が多くなってしまうと思い避けていました・・・・・

今回の質問
FTPソフトを作っているのですが、使い方はサーバー(UNIX)で5~10
秒おきに更新されるデータファイルをFTPでGetFileするソフトです。
ただし、クライアント側(WinNT)では、更新ボタンを押した時
だけに最新のデータファイルをダウンロードします。

現状はファイルのダウンロードやアップロードなど、FTPの機能につい
ては、色々なサンプルを見て出来るようになったのですが、下記コード
でサーバーにコネクトして、ファイルをダウンロードして、接続をクローズ
すると、ソフト立ち上げ後一回目の最新データファイルがダウンロード
されるのですが、更新するために再度呼び出しても、ファイルの内容
に変化がありません。ダウンロードする前にクライアント上のデータファ
イルを削除してもファイルの内容に変化がありません。
CFtpConnection::Close();やdeleteなどで、リセット??できない
のでしょうか??


{
CInternetSession* m_pInetSession;
CFtpConnection* m_pFtpConnection;
CString str = _T("JSC for Windows");

m_pInetSession = new CInternetSession(str, 1,
PRE_CONFIG_INTERNET_ACCESS);
m_pFtpConnection =
m_pInetSession->GetFtpConnection(SERVER,UID,PASS);

m_pFtpConnection->GetFile(filename, filename, TRUE,
FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_ASCII,  1 );


m_pFtpConnection->Close();
m_pFtpConnection = NULL;
m_pInetSession=NULL;
delete m_pFtpConnection;
delete m_pInetSession;

}

以上、よろしくお願いします。

曽根田   mail : f...@thn.ne.jp
30

[mfc 12200] FTPプログラムについて

お世話になっています。曽根田です。

はじめにMLでも話題になていましたが、質問にたいする自己レスです。
「 [mfc 11467] 32ビットビットマップから24ビットに変換する方法」
渡辺 裕朗さん!ありがとうございました!!アドバイスのおかげで
簡単に変換することができました。
レスはMLの数が多くなってしまうと思い避けていました・・・・・

今回の質問
FTPソフトを作っているのですが、使い方はサーバー(UNIX)で5~10
秒おきに更新されるデータファイルをFTPでGetFileするソフトです。
ただし、クライアント側(WinNT)では、更新ボタンを押した時
だけに最新のデータファイルをダウンロードします。

現状はファイルのダウンロードやアップロードなど、FTPの機能につい
ては、色々なサンプルを見て出来るようになったのですが、下記コード
でサーバーにコネクトして、ファイルをダウンロードして、接続をクローズ
すると、ソフト立ち上げ後一回目の最新データファイルがダウンロード
されるのですが、更新するために再度呼び出しても、ファイルの内容
に変化がありません。ダウンロードする前にクライアント上のデータファ
イルを削除してもファイルの内容に変化がありません。
CFtpConnection::Close();やdeleteなどで、リセット??できない
のでしょうか??


{
CInternetSession* m_pInetSession;
CFtpConnection* m_pFtpConnection;
CString str = _T("JSC for Windows");

m_pInetSession = new CInternetSession(str, 1,
PRE_CONFIG_INTERNET_ACCESS);
m_pFtpConnection =
m_pInetSession->GetFtpConnection(SERVER,UID,PASS);

m_pFtpConnection->GetFile(filename, filename, TRUE,
FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_ASCII,  1 );


m_pFtpConnection->Close();
m_pFtpConnection = NULL;
m_pInetSession=NULL;
delete m_pFtpConnection;
delete m_pInetSession;

}

以上、よろしくお願いします。

曽根田   mail : f...@thn.ne.jp
30

[mfc 12199] リストビューで選択されたアイテム取得

メガリスといいます。

リストビューで、選択されているアイテムを取得するのは
どのようにすれば良いのでしょうか?
ツリービューでは、GetSelectedItemを利用すれば簡単に
選択されているアイテムを取得することが可能だと思いま
す。
また自分が選択したアイテムに関しては、HitTest()を
利用することで情報を取得できますが、プログラム的に
選択状態にあるアイテムの情報を取得する方法が良く分か
りません。
回答、よろしくお願いします。

--
m...@tky2.3web.ne.jp
記事検索
Amazon.co.jp
  • ライブドアブログ