アプリ版:「スタンプのみでお礼する」機能のリリースについて

PDFのファイルをサイズと位置を指定して開きたいのですがうまく行きません、
良い方法はありませんか?

現在のコード

//v8.3 PDFのファイルのサイズと位置を変更
BOOL MovePDF(LPCTSTR lpszCloseFile)
{
CWnd* pWnd;

CString str = lpszCloseFile;


//v8.2 ウィンドウを検索してハンドルの取得
pWnd = FindWindow("AcrobatSDIWindow", str + " - Adobe Reader");

if (pWnd != NULL){

//v8.3 見つかったウィンドウのサイズと位置を変更(x,y,widh,height)
pWnd->MoveWindow(0, 0, 600, 600);

return TRUE;

}
else MessageBox("ウィンドウハンドルが取得できませんでした。");

return FALSE;
}

//v7.4 レイアウト図作成手順表示
BOOL MakeLayout1()
{
int ret;
CString strFileName;

strFileName = m_cFunc.GetInitDir() + "\\PDF\\レイアウト図作成手順1.pdf";

SHELLEXECUTEINFOsei = { 0 };
//構造体のサイズ
sei.cbSize = sizeof(SHELLEXECUTEINFO);
//起動側のウインドウハンドル
sei.hwnd = m_hWnd;
//起動後の表示状態
sei.nShow = SW_SHOWNORMAL;
//このパラメータが重要で、セットしないとSHELLEXECUTEINFO構造体のhProcessメンバがセットされない。
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
//起動プログラム
sei.lpFile = strFileName;


//プロセス起動
if(!ShellExecuteEx(&sei) || (const int)sei.hInstApp <= 32){
TRACE("error ShellExecuteEx\n");
}
else {

//v8.3 入力可能状態になるまで待つ
WaitForInputIdle(sei.hProcess, INFINITE);
}
//v8.3 サイズと位置変更
MovePDF("レイアウト図作成手順1.pdf");

return TRUE;
}

A 回答 (2件)

MFCなんでしょうけど……


# って事でC言語ではなくC++言語ということになりますかねぇ…。

で……どう「うまくいかない」んですか?

とりあえず、手元のVS2015 Communityで試したところだと…
>pWnd = FindWindow("AcrobatSDIWindow", str + " - Adobe Reader");
が常にNULLになりましたね。

というか…コールされたのがAPIのFindWindow()のような気もしますが。
# MFCアプリケーション、ダイアログベースで作成して適当にボタン配置して掲示されたコードを貼り付け。
# PDFファイルのファイル名をローカルドライブにある適当なPDFファイルをフルパス指定して、
# アクロバットリーダーが微妙にバージョン違いの為、その辺修正。
# 掲示された関数はダイアログクラスのメンバに変更。

pWnd = CWnd::FindWindow("AcrobatSDIWindow", str + " - Adobe Reader");
でpWndは非NULLになって動作しましたけど。
    • good
    • 0

本当に、C言語?


確認ください

C言語、C++言語、C#言語、別の言語ですよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!