<   2010年 08月 ( 3 )   > この月の画像一覧

e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

テスト



open()
[PR]
by isoq | 2010-08-11 13:25 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

エクスプローラ上でのファイル等のドラッグ&ドロップと同等のドラッグアンドドロップを開始する方法


エクスプローラ上でのファイル等のドラッグ&ドロップと同等のドラッグアンドドロップを開始する方法を、MFCを使用して実装する。
リストコントロールに登録されたファイルのドラッグアンドドロップが出来るようにした。


void CXXXListView::InitiateDragAndDropFiles()
{
    CListCtrl& list = GetListCtrl();

    // リストコントロールからファイルのリストを作成
    std::vector files;
    POSITION pos = list.GetFirstSelectedItemPosition();
    while(pos)
    {
        int nItem = list.GetNextSelectedItem(pos);
        // ここでは、各リストアイテムが CFileAttributes というクラスをデータとして持っており、
        // そのクラスが、ファイルのパスを提供する事を前提に作成しています。
        CFileAttributes* pAtt = (CFileAttributes*)list.GetItemData(nItem);
        if(pAtt)
        {
            CString strFilePath = pAtt->GetPathName();
            int nLen = strFilePath.GetLength();
            const char* top = strFilePath;
            files.insert(files.end(), top , top + nLen);
            files.push_back(0);    // 文字区切りとして、NULL文字(\0)を挿入します。
        }
    }
    files.push_back(0);    // ファイル名リストの終端は、 NULL NULL (\0\0) にします。

    // DROPFILES の データ構造は、
    // DROPFILES構造体と、構造体の先頭から pFilesバイト の位置から始まるファイル名リスト
    // から構成されているらしい。
    // ちなみに、pFilesを大きくすると、隙間に他のデータを埋め込む事が出来るっぽい。
    // それに新しくCFのIDを付ければ、HDROP互換のまま、お手軽にファイル+αの情報を
    // 伝えることが出来る。
    
    // グローバルメモリを割当
    HDROP hDrop = (HDROP)::GlobalAlloc(GHND, sizeof(DROPFILES) + files.size());
    if (hDrop == NULL)
        return;

    // グローバルメモリをロックして、ポインタを取得
    LPDROPFILES pDropFile = (LPDROPFILES)::GlobalLock(hDrop);
    pDropFile->pFiles = sizeof(DROPFILES);    
    pDropFile->pt.x = 0;
    pDropFile->pt.y = 0;
    pDropFile->fNC = FALSE;
    pDropFile->fWide = FALSE;

    // ファイル名リストをコピー
    char* lpNams = (char *)(pDropFile);
    lpNams += pDropFile->pFiles;
    ::memcpy(lpNams, &files[0], files.size());
    ::GlobalUnlock(hDrop);

    // ドラッグを開始
    COleDataSource oleDataSrc;
    oleDataSrc.CacheGlobalData(CF_HDROP, hDrop);
    DROPEFFECT dropEffect = oleDataSrc.DoDragDrop();

    if(dropEffect == DROPEFFECT_MOVE)
    {
        // なぜか、dropEffect が正しく返ってこない・・・不思議
    }
}

[PR]
by isoq | 2010-08-11 13:23 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

木星が見頃を迎えています!

今、木星が午前3時頃に南中に上がります。

惑星は、暗そうで、探すのが大変そうですが、
簡単に見つけられます。



一番明るい星を探せばよいのです!

午後10時頃に東の空から上がり始め、
午前3時にほぼ南中に上がります。

木星は、かなり高い位置に見えます。
真上を覗く感じです。

私が購入した ケンコー スカイウォーカー SW-III でも
木星の縞模様やガリレオ衛星が
ばっちり見えました!

今の時期は、土星と比べて、木星は2倍以上近い場所にあるので、
かなり大きく見えます!

a0002261_9195482.jpg


スカイウォーカーのデジタルアイピースは、
使い物になりませんでした・・・



あまりにも、木星が明るすぎて、
表面がサチって(飛んで)しまうのです。
恥ずかしすぎるので、写真は載せられません。

主鏡有効径70mmの望遠鏡を持ってしても、
縞模様は、かすかに縞がわかる程度ですが、
こんなによく見えるなんて・・・・
感動しました。

あまり遠い天体は、この望遠鏡では無理でしょうが、
惑星はすべて見れたらいいなーと思っています。


望遠鏡を選ぶのは、性能などいろいろあって結構難しいのですが、
私がこれを選んだのは、ただ赤道儀付きで、安かったからです。
ただし、かなりぶれますね。
強風が吹くと びぃーーんーーー・・・・・ と、振れます。
フォーカスを合わせるときも、手を離すと ビィーーーーン・・・・ と振れます。
いったんフォーカスが合えば、赤道儀で微動で合わせるので、
便利です。

星は意外と、早く動いていて、175倍の倍率で、
30秒くらいで、視野から外れてしまいます。
だから、けっこう忙しく微動を続けなければなりません。
微動ハンドル付き赤道儀がなければ、かなり大変な作業です。
付いててよかった~ ^^


で、今後、さらに高性能な望遠鏡がほしくなってしまうのです。
高級品なら、三脚や赤道儀がもっとしっかりしているので、
もっとスムーズにフォーカスや追跡ができるはずです。

欲を言えば、自動導入が可能な架台が付いた、
大口径のカセグレン式望遠鏡を買いたい!

・・・あ、あと、家を山に引っ越さないと・・・

CELESTRON(セレストロン)天体望遠鏡CGE-1400(XLT)

CELESTRON(セレストロン)天体望遠鏡CGE-1400(XLT)

価格:1,659,000円(税込、送料込)


[PR]
by isoq | 2010-08-07 09:49 | 天体観測
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇