MFC(VC++6.0)のダイアログベースでプログラムを製作していますが
現在、ビットマップ上にデジタル時計の絵があり、時間も固定になっています。
それを現在の時刻をデジタル時刻で表示できるようにしろと言われたのですが、本当にそんなことができるかご存知の方教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

結論から言えば出来ます



やり方としては貼り付けたBitmapのオブジェクトを取得して現在時刻にあった画像を生成/読み込み、Bitmapに反映させる事で可能です(実際は再描画やバックバッファなどいろいろしなければならないですが・・・)。

まともに説明するとここには書ききれる量ではないので専門書を読まれる事をオススメします。
プログラミングWindowsやWin32アニメーションプログラミングなどのGDIを扱い方について解説されている本を読みましょう。

現在時刻についてはGetLocalTime()APIを利用すれば取得できます。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q板谷峠での機関車+50系の編成

スイッチバック末期の板谷峠で、機関車+50系はどのような編成(機関車、客車の両数)が基本でしたか。またED78+EF71+50系3両という編成はありましたか。

Aベストアンサー

板谷峠での晩年の50系客車の運用は、雑誌情報などから精々2~4両程度の短い編成だった様に記憶している・・!?

牽引定数から考えると50系客車3両ならば、ED78単機運用でも余裕と思われるが・・・、
(インターネット上からは、EF71 + ED78 + 50系(客)3両の証拠写真なり映像を見つけられなかった)
以下の運用があったのを考えると、ED78+EF71+50系3両という編成はあり得るとは思う・・!
証拠物件抽出は他の回答者に任せる・・!?
----------------------------------------------
http://www.uraken.net/rail/pastr/ohu50toge.html
------------------------------------------------
↑でED78 + 50系(客)3両(・・?)

---------------------------------------------
http://www.tetsudou.com/ph/mari/itaya.html
----------------------------------------------
↑でEF71 + ED78 + 50系(客)2両・・!

------------------------------------------------
http://www.ec583.org/ALBUM/EF71x2+pc50-m.jpg.html
----------------------------------------------------
↑でEF71(重連) + 50系(客)4両・・!

尚、板谷峠における牽引定数は以下の通りらしい。
-----------------------------------------------
# ED78形単機…300t(最大330t)
# EF71形単機…通常430t(最大450t)
# ED78形重連…540t
# EF71形とED78形の重連、もしくはEF71形重連…650t
-----------------------------------------------------

個人的には、板谷峠のスイッチバックは憧れていた鉄路だった・・!
(結局、奥羽本線での鉄路での旅路を経験せぬまま迎えてしまった・・! 残念でならない!!)

板谷峠での晩年の50系客車の運用は、雑誌情報などから精々2~4両程度の短い編成だった様に記憶している・・!?

牽引定数から考えると50系客車3両ならば、ED78単機運用でも余裕と思われるが・・・、
(インターネット上からは、EF71 + ED78 + 50系(客)3両の証拠写真なり映像を見つけられなかった)
以下の運用があったのを考えると、ED78+EF71+50系3両という編成はあり得るとは思う・・!
証拠物件抽出は他の回答者に任せる・・!?
----------------------------------------------
http://www.uraken.net/rail/pastr/o...続きを読む

Q【VC6.0の質問】世界協定時刻と時刻について

VC6.0の質問です

ネット(WinNT4.0)でつながっている他の端末の時刻を取得するにはSYSTEMTIME(世界協定時刻)しか取れないですか?
他の端末のローカル時間(日本の時刻)を取得する方法があれば教えてください。

SYSTEMTIME(世界協定時刻)からローカル時間(日本の時刻))に変換する関数、サンプルプログラム、参考URLがあれば教えてください。

Aベストアンサー

的が外れていたらごめんなさい。
インターネット上で日本標準時を提供しているNTPサービスについて情報を提供するページを紹介します。
ここは独立行政法人通信総合研究所(以下、CRL)と日本電信電話株式会社(以下、NTT)、株式会社インターネットイニシアティブ(以下、IIJ)、インターネットマルチフィード株式会社(以下、MFEED)が共同研究の一環として行っている試行サービスです。共同研究はインターネット上に安定した高精度な時刻情報配信・配送網構築を行うことを目的としているそうです。
インターネットに接続している方であれば、以下のURLにて高精度な時刻をNTPにて取得可能です。まずは内容を参考URLにて確認してみてください。

参考URL:http://www.jst.mfeed.ad.jp/index.html

Q未来 現在 現在進行

未来 現在 現在進行
未来のことを現在形や現在進行形であらわすときがありますよね
それってどんなときですか

Aベストアンサー

カレンダーに記入されたスケジュールなどで予定がはっきり決まっていて、起こる確率が高い場合は現在形を使います。
"I have a test next week."(来週テストがあります)
"I go to his birthday party tonight."(今夜、彼の誕生パーティーにいきます)

カレンダーなどで日付がはっきり決まっていなくても、近い将来に起こる確率が高そうなことは現在形進行形を使います。
"I am graduating highschool this summer."(夏に高校卒業予定です)
"We are arriving in a few minutes."(数分で到着するでしょう)

予定がはっきり決まっていなくても、話している現在より以前に決めていたことを話す場合は"be going to"を使います。
"I am going to eat pasta tonight."(今晩は、パスタを食べるつもりです)

現在の状況から未来に起こることが高い確率で予測できる場合は"be going to"を使います。
(箒を持って部屋に入っていく(女性)を見て、)
"She is going to clean the room."(彼女はその部屋を掃除するでしょう)
 
雰囲気として、起こる確率の高い順から、
現在形 (高)

現在進行形

"be going to"

"will" (低)
です。
 

 

カレンダーに記入されたスケジュールなどで予定がはっきり決まっていて、起こる確率が高い場合は現在形を使います。
"I have a test next week."(来週テストがあります)
"I go to his birthday party tonight."(今夜、彼の誕生パーティーにいきます)

カレンダーなどで日付がはっきり決まっていなくても、近い将来に起こる確率が高そうなことは現在形進行形を使います。
"I am graduating highschool this summer."(夏に高校卒業予定です)
"We are arriving in a few minutes."(数分で到着するでしょう)
...続きを読む

QMFC 6.0 VC++ で、処理が重くなります。

MFC 6.0 VC++ で、処理が重くなります。
上記の環境でダイアログベースで処理を作成しています。
画面の再描画を繰り返すと、同じ処理をしていても処理が重くなります。
OnPainメッセージを受け取ったあとに、描画処理を行っているのですが、画面に表示に必要な計算も描画時に行っています。
仮想ウィンドウに描画してBitBlt()を実行する方法も試しましたが、ちらつかなくなった代わりに余計に処理が重くなりました。
描画のやり方が問題なのか、内部の処理が問題なのか良く分からないのですが、何か良い方法が無いでしょうか?

タスクマネージャーを見るとコミットチャージが増えているようです。
このコミットチャージもどう対処してよいのか良く分からないのですが、これが関係しているでしょうか?

Aベストアンサー

使用したスレッドやクラス、メモリの開放は行われていますか?
タスクマネージャーは「コミットチャージ」ではなく「プロセス」で、
該当アプリの「メモリ使用量」「ハンドルの数」「スレッドの数」も確認してください。

Q現在形

現在形に関して英語の講師が、「現在形は現在の習慣や不変の真理という風に覚える必要はない。現在形は現在を中心に過去も未来も含むと考えろ」と言っていました。

しかし、この考え方をするならば、現在の状態を表す場合、例えばI am hungryという文では、お腹が空いているのは過去も現在も未来もということになりますが、studentなら納得がいきますが、hungryは一時的な感覚があり違和感があります。

それに現在形は確定した未来も表しますから、この考え方は間違いだと思うのですが、間違っているのは僕でしょうか。

Aベストアンサー

間違いとは言えませんが、そんな風に捉えるとかえってわかりにくくなりますし、誤解のもとですよ。

 The moon goes around the earth. 「月は地球の周りをまわっている」 
これは普遍的なことなので現在形という、学校英語ではよくある例ですね。
かえって説明しにくいのはこういうの以外。

 I go to school. 「私は学生です」
これは現在形云々というよりも、"go"に元々「(学校や職場に)通う」という意味があるから、と考えた方がいいです。

 I live in Tokyo.
「今住んでいる」なら、「少し前から住んでいる」もしくは「この先もしばらく住む」ということになるはずですから、自動的に「過去も未来も含む」意味になるというだけです。現在形だからではありません、動詞の持つ意味が本来そうだからです。
現在形でよく使うわれる動詞は、そういう意味を持つ場合が多いです。

状態名詞であれば、「今の状態」に限る話であって、過去や未来のことは基本的に言及されていません。
 I have a pen. 今ペンを持っている状態であるということ

 That sounds good! 「そりゃいいね!」
「それ」が「良い」ように「聞こえる」という意味。これも過去や未来は関係ありません。
・・・・当てはまらないものを挙げているとちょっとキリ無いですね。

同じ"want"でも、
 I want to be a doctor. 「医者になりたい」
これは「今この瞬間の話」には違いないのですが、すぐ気が変わるようなものではないので自動的に「過去も未来も含む」意味になると思います。
 I want something to drink. 「飲み物が欲しい」
だと、普通に考えれば、未来や過去ではなく「今この瞬間」のことを言っていることになると思います。
・・・やはり同じ現在形でも、動詞そのものの意味によって大きく変わるってだけだと思います。

間違いとは言えませんが、そんな風に捉えるとかえってわかりにくくなりますし、誤解のもとですよ。

 The moon goes around the earth. 「月は地球の周りをまわっている」 
これは普遍的なことなので現在形という、学校英語ではよくある例ですね。
かえって説明しにくいのはこういうの以外。

 I go to school. 「私は学生です」
これは現在形云々というよりも、"go"に元々「(学校や職場に)通う」という意味があるから、と考えた方がいいです。

 I live in Tokyo.
「今住んでいる」なら、「少し前から住...続きを読む

Q【VC++6.0(MFC)】コメントを一括挿入、解除の方法を教えて下さい。

いつも大変お世話になっています。
VC++初心者です。

VC++6.0 Enterprise Editionで
コメントを一括挿入、解除の方法を教えて頂けませんか。

VC2005の場合、コメントしたい範囲を指定して、
Ctrlを押しながら、K、Cの順に押すと、一括コメント挿入
Ctrlを押しながら、K、Uの順に押すと、一括コメント解除
だと思いましたが、このようなコマンド(?)ってありますか。

Aベストアンサー

VC6にはそういった機能がないので マクロで実現といった具合になりそうですよ

VC6のサンプルマクロに CommentOutといったものがあるので参照してみましょう

以下はサンプルマクロを参照して作成したものです
Sub myMacro1()
  dim ss
  dim StartLine, EndLine
  ' 選択範囲の行番号の取得
  startLine = ActiveDocument.Selection.TopLine
  EndLine = ActiveDocument.Selection.BottomLine
  for n = StartLine to EndLine
    ' 選択範囲の単一行の選択
    ActiveDocument.Selection.GoToLine n
    ActiveDocument.Selection.SelectLine
    ' 選択行を取得
    ss = ActiveDocument.Selection
    ' コメント位置を確認
    nIndex = InStr( ss, "//" )
    'MsgBox ss & nIndex
    sLeft = ""
    if nIndex > 1 then
      ' コメント位置が行頭でなければ左側を取得
      sLeft = Left( ss, nIndex - 1 )
    end if
    if nIndex > 0 then
      ' コメントの右側を取得
      ss = Mid( ss, nIndex + 2 )
    end if
    if nIndex = 0 then
      ' コメントでなければコメント化
      sLeft = Left( ss, InStr( ss, Trim(ss) ) - 1 )
      ss = "//" & Trim( ss )
    end if
    'MsgBox sLeft & vbcrlf & ss
    ' 選択行の更新
    ActiveDocument.Selection = sLeft & ss
  next
End Sub

# インデントに全角スペースを使っています

VC6にはそういった機能がないので マクロで実現といった具合になりそうですよ

VC6のサンプルマクロに CommentOutといったものがあるので参照してみましょう

以下はサンプルマクロを参照して作成したものです
Sub myMacro1()
  dim ss
  dim StartLine, EndLine
  ' 選択範囲の行番号の取得
  startLine = ActiveDocument.Selection.TopLine
  EndLine = ActiveDocument.Selection.BottomLine
  for n = StartLine to EndLine
    ' 選択範囲の単一行の選択
    ActiveDocume...続きを読む

Q現在形と現在完了形の違いについて

お世話になります。
今『総合英語Forest』等を使って勉強しているのですが、
現在形と現在完了形について、その違いが分かりません。
例えば次のような文があったとします。
(1)I know Paul.
(2)I have known Paul since we were children.
先に挙げた本では、現在形は「過去にも知っていたし、今も知っているし、未来も知っている」という意味合いが含まれているとのことでした。
一方現在完了形は「過去のいきさつとつなげて現在の状況を述べること」という風に説明がされています。
と、しますと、(1)の訳は「私はポールを過去にも知っていたし、今も知っているし、未来にも知っている。」となり(2)は「子どもの頃からポールとは知り合いだ。」となりますでしょうか?
その際、違いは、
・現在形の及ぶ範囲は現在を中心とした過去・未来
・現在完了形の及ぶ範囲は、過去のいきさつとつなげた現在
ということから、「未来があるかないか」でしょうか?

Aベストアンサー

現在形というのは今という瞬間を表すものではありません。

I know Paul. は「今の事実」を表しますが,「知っている」という行為については今という瞬間を中心に過去から未来へとまたがった時間となります。

I play tennis. のような現在形も,今の瞬間にしているのでなく,
過去から未来も含めて,習慣的に行われることを表します。

「長年知り合いでいることは」とか
「一日何時間もテニスをすることは」
のような場合は for ~のような期間を表す語を用いて現在形(あるいは不定詞など)を表すことができますが,
現実に過去から現在にいたる期間,継続して行われている
という場合には現在形は用いられません。

上の例の「長年」とか「何時間」というのは,いつからいつまでのように固定されたものではありません。

ある過去のときから,現在にかけて何かが継続している
という場合には現在完了(あるいは現在完了進行形)の助けを借りる必要があります。

今回も,since we were children という表現を用いて,
固定したある過去から現在にかけての継続を表すのには現在完了にする必要があります。

日本語では現在形 know の「知っている」と,
現在完了 have know の「知っている」が区別できません。

現在形というのは今という瞬間を表すものではありません。

I know Paul. は「今の事実」を表しますが,「知っている」という行為については今という瞬間を中心に過去から未来へとまたがった時間となります。

I play tennis. のような現在形も,今の瞬間にしているのでなく,
過去から未来も含めて,習慣的に行われることを表します。

「長年知り合いでいることは」とか
「一日何時間もテニスをすることは」
のような場合は for ~のような期間を表す語を用いて現在形(あるいは不定詞など)を表すこと...続きを読む

Q【VC++6.0(MFC)】MessageBoxを使わず、MessageBoxと同機能を表現するには?

いつも大変お世話になっております。
VC++初心者です。

現在、先人のつくったソースを見直しています。
ある条件になるとエラーを知らせるMessageBoxを出力するのですが、
デバグモードでMessageBoxが使われれている全ての箇所に
ブレイクポイントをおいても、それらのブレイクポイントに引っかかって
くれません。

そうなると、MessageBox以外の命令でMessageBoxと同様のことを
しているコードがあると思っているのですが、そういう機能の命令
はどのようなものがあるのでしょうか。

お手数ですが、よろしくお願いします。

Aベストアンサー

まず何度かエラーメッセージが表示されているみたいなので、再現性があると思うのですが、再現手順は確立されているんでしょうか?
確立されているのなら、デバッグしながらその手順を行いプログラムを1行ずつ実行させれば良いと思うのですが。
確立されていないなら、確立する努力をするのが一番の近道だと思います。(コードの量と再現率によりますが)
それでも無理なら動的解析ツールを使った方が良いかも知れません。

以下はつぶやき。
MFCを使っているなら、メモリーリークはそれ程気にしなくても良いかも。MFC自体がリークしてるので。。。
それから動的なメモリ確保のメリットってどれくらいあるのでしょうか。。。
組込みの開発をしていて、ファイルの書き込み回数の制限があった時に圧縮をするときには圧縮後のサイズが事前に分からないので動的にメモリを確保しましたが、それ以外で動的にメモリを確保するメリットがあまり思い浮かびません。
PCアプリなら単純にファイルに書き込めば良いですし。。。
遠い記憶ですが、データサイズが事前に予測できないデータをファイルに書き込んでも、書き込んだデータは実はメモリ上に保持されていてファイルストリームを使って引き回しても処理速度が落ちなかった経験がありました。。。

まず何度かエラーメッセージが表示されているみたいなので、再現性があると思うのですが、再現手順は確立されているんでしょうか?
確立されているのなら、デバッグしながらその手順を行いプログラムを1行ずつ実行させれば良いと思うのですが。
確立されていないなら、確立する努力をするのが一番の近道だと思います。(コードの量と再現率によりますが)
それでも無理なら動的解析ツールを使った方が良いかも知れません。

以下はつぶやき。
MFCを使っているなら、メモリーリークはそれ程気にしなくても良...続きを読む

Q●時×分現在、の「現在」の使用について質問です

過去の出来事である時間を指すときに、●時×分現在、といいますが、この「現在」の使用法がなんとなく釈然としません。
 もしかしたら、外国語の直訳でしょうか?現在というより、ほかにも適当な言葉があるような気もします(例えば、ちょっとニュアンスは違ってきますが、●時×分当時だとか)。
この「現在」の使用方法の始まった時期やどうして現在という言葉になったのか、ご存知の方、教えてください。

Aベストアンサー

ご質問の「現在」に近い使い方には「時点」があります。

「現在」は報告形式の文章や会話で、その文章が書かれた時点や会話がされた時点を限定する際に「日時+現在」の形や「いま+現在」と言う形で使用されています。もともと「理論上○○の存在が予測されるが、現在のところまだ発見されていない」などのように「現時点では」の代わりに使用されてきたように思います(推測で学術的な裏付けがあるわけではありません)。

「時点」と言う言葉が過去や現在、未来と様々な「時を限定」できるのに対し、電話やメールなどでリアルタイムのやり取りが盛んになった結果、「今を特に限定したい」要求が「現在」の使用を促しているのではないでしょうか?(最近は「時点」を使うべきところで「現在」が使われている場面も良く見かけますが・・・)。

QMFC VC++ 6.0 使用 OnDrawでPolygonを使って書いた実行結果をBMPファイルとして保存したいのですが。

OnDrawでPolygonを使って書いた実行結果をBMPファイルとして保存したいのですが、どこをさわっていいのか全くわかりません。どなたか 簡単なアドバイスいただけないでしょうか?参考書等の紹介などもありがたいです。

Aベストアンサー

デバイスコンテキストの仕組みを理解する必要があります。

OnDrawでは、「ディスプレイ」というデバイスに対して、描画していると思います。これは、出力するデバイスを「プリンタ」にすれば、プリンタに出力することもできます。

同じように、「メモリ」に出力すれば、メモリ上に画像データが出力されますので、これをファイルに保存すればいいわけです。メモリデバイスコンテキストは、CreateCompatibleDC という関数を使うと作成できます。

まず、OnPaintの中身を独立した関数にします。
たとえば、

CMyWnd::Draw( CDC *pDC )
{
pDC->Polygon  みたいな感じ
}

で、OnDrawのときは、この関数に、OnDrawのDCを渡してあげます。
ファイルに保存するときは、メモリデバイスコンテキストをわたしてあげます。
これで、画面に描画したものと同じ画像がメモリに格納されます。

ところが!困ったことにこのメモリに格納された画像は、DDB(デバイス依存ビットマップ)と呼ばれる形式です。BMPファイルは、DIB(デバイス独立ビットマップ)という形式なので、DDB→DIB変換が必要になります。

これ以上は、説明が大変なので調べて見てください。
ヒントとして、DIBSECTIONという仕組みを調べてください。DDBとDIBを同じように扱えます。

DIBSECTIONの使い方はいろいろ情報がありますので、頑張ってください。

http://www.hcn.zaq.ne.jp/no-ji/reseach/990124.htm

デバイスコンテキストの仕組みを理解する必要があります。

OnDrawでは、「ディスプレイ」というデバイスに対して、描画していると思います。これは、出力するデバイスを「プリンタ」にすれば、プリンタに出力することもできます。

同じように、「メモリ」に出力すれば、メモリ上に画像データが出力されますので、これをファイルに保存すればいいわけです。メモリデバイスコンテキストは、CreateCompatibleDC という関数を使うと作成できます。

まず、OnPaintの中身を独立した関数にします。
たとえば、
...続きを読む


人気Q&Aランキング

おすすめ情報