「RC」を含む日記 RSS

はてなキーワード: RCとは

2020-07-11

マイナポイント申し込みとの戦いの記録

7月からマイナポイント申し込みが始まったので挑戦する(たかが5,000円に飛びつく貧乏人です)

マイナポイントアプリ必要らしいのでダウンロードしにいく

スマホ対応機種であるが、「お使いのデバイスはこのバージョン対応していません」と出る。

どうもスマホ本体の機種だけでなく、通信事業者対応可否がある模様。(カードの読み取りに通信事業者制限してくる意味不明さに脱帽)

https://mynumbercard.point.soumu.go.jp/doc/nfclist.pdf

仕方がないのでパソコンからやることにし、マイナンバーカード読み取りに必要ICカードリーダーを購入(ソニー PaSoRi RC-S380 2,782円2020/07/11時点)

適当リーダー買って使えないとか辛いのでちゃんと公開されている対応機種を買う

https://www2.jpki.go.jp/prepare/pdf/nfclist.pdf

マイナポイント申し込みには、マイキーIDの発行が必要とのことで、キーを発行してくれるマイナプラットフォームというサイトにいく

https://id.mykey.soumu.go.jp/mypage/MKCAS010/

マイナポイントの予約(マイキーIDの発行)」ボタンを押すとInternetExplore11じゃないとだめだと怒られる。(今どきIE11指定とか大丈夫・・・)

IE11アクセスする(久々に起動)

マイナポイントの予約(マイキーIDの発行)」ボタンを押す

また怒られる

カードリーダーマイナンバーカードをセットした状態じゃないと進めない模様(ちっ)

カードをセットする(非接触リーダーだが、リーダー本体ちゃんと密着セットしないと読み取りエラーになる)

暗証番号を入れる

”予期せぬエラー”とでる(画面が進んだのでカードはずしてた)

カードをセットしたままじゃないとだめらしい。(エラー文の解読難易度の高さ)

ようやく申し込み画面に進む。決済サービス指定画面へ。

自分EDYを常用しているので、EDYで申し込もうとする

決済IDセキュリティコード入力を求められる(なにそれ?)

決済IDとはEDY番号のこと、セキュリティコードとはEDYカード記載されているコードの模様

自分は お財布ケータイEDYを常用しているのでどうすればよいのか調べる

お財布ケータイにはEDY番号はある。セキュリティコードはないとのこと。

さらに調べると、お財布ケータイEDY場合は、楽天EDYアプリから申し込んでと書かれている(楽天EDYアプリからできるのかよ・・・

楽天EDYアプリは入っているので、そこから申し込みしようとする

マイナポイントアプリ必要と言われる(前述の通り、自分スマホ通信事業者が非対応なので使えない。糞が。)

さらに調べると、お財布ケータイEDY場合は、セブン銀行ATMからも申し込みできる模様(セブンに行くのめんどくさい)

さら確認すると、セブン銀行ATMからの申し込み対応開始時期は9/1からとのこと。

終了

結論マイナポイントアプリ対応機種通信事業者場合で、かつ、お財布ケータイEDYの人は、ICカードリーダーを買ったところで無駄になる。申し込みは9/1以降(予定)セブン銀行ATM。それもすんなりできる気がしない。

パソコンスマートフォン以外の申し込み | Q & A | 楽天Edyで困った時は https://support.rakuten-edy.co.jp/faq/show/5932?back=front%2Fcategory%3Ashow&category_id=482&page=2&site_domain=default&sort=sort_access&sort_order=desc

5,000円のために2,782円のリーダーを買い、予約できずに徒労に終わったいう記録でした。

2020-06-12

引っ越しガチャ4回目またしても俺は失敗したようだ 不動産屋は○ね

一軒目

大量のヤスデ出現

毎日朝起きると天井に出現する

不動産屋は適当ガムテープ侵入経路であろう箇所を塞いだが以前変わらず 夢にまで見るようになり引っ越し

二軒目

壁がまあ〜薄い この時期はネット鵜呑みにしていてRC=防音性が高いイメージだけで選ぶ(ヤスデが完全にトラウマになってて早く引っ越したかったというのもあったが)

こんな話し声がはっきり聞こえるのかとただでさえ薄い上に隣人の民度が低く重低音の音楽が鳴り響く

不動産屋に仲介してもらって色々話してもらったが解決せず 引越し

三軒目

上下階の音が筒抜け ここで半分鬱病みたいになってた 

RCマンションでも硬い壁とそうでない壁があることを知り内見で異常に気を使いようやく硬い壁のマンションを見つける

…が上階の音が滅茶苦茶うるさい 足音何かものを落とす音が自分の部屋で落とすより聞こえる 脳に直接叩きつけられるような

不動産相談 変わらず

齢25にして大の男がワンワン泣き遺書まで書いた

部屋のひどさもそうだが不動産大手にも関わらず今までのどこよりも動きが遅く手紙だけでも二週間はかかっていた

不眠がひどくなり目にクマを初めて作った 包丁を手にとって上階のやつを大真面目に殺そうとしたことがあった 階段で盛大に転び冷静になって引き返したが まあそのぐらいブレーキが効いてなかった

貯金もこんな立て続けに引っ越せばすぐなくなる でも何回かまだ引っ越す余裕はあった でもまた次で失敗してお金をなくすとと考えると行動できなかった

そんな折にちょっとした臨時収入に合わせて給付金が入った 

ラストチャンスだと思い引っ越す

四軒目

引き戸がうるさい

内見は数え切れないくらい行った 不動産屋の言うことは信じずにRC最上階、壁が固く音が反響するような所、床はクッションフロア

そんな物件を見つけるには苦労したがやっとのこさ見つけられた

ただ懸念点が一つ引き戸があったこと 今まで住んでいた所にはないものでこういうのの音ってどうですかねと聞いてしまった たまたま不動産屋の年齢が近く親しみ易さが合ったからだろう

答えとしては鉄筋なので安心してもいい 苦情がはいたこともありませんと

なんでか分からないが信用してしまった 自分でも相当心が疲弊していたと思う

住んでみてやっぱり引き戸うるせーじゃねえーか!!

どっちかっていうと閉め方の問題な気がするがパアンッ!!って音が家中に鳴り響くんだよ異常だろ 

現状に関しては今からまた不動産相談となるが解決するかは分からない

クレーマー、神経質なのかと思われるかもしれないが音に関しては全て耳栓をしてそれでも防げなかった上で抗議している

正直もう疲れた 不動産のあのニコニコ顔を見るだけで吐き気を催すレベルまで来た

どうして自分だけどうしてこんなに運が悪いんだと四六時中考えてる 

こんないい加減な紹介の仕方しかしない不動産になんで金払ってるんだ なんでいい加減なやつらを通さないといけないんだ

やってること詐欺と一緒じゃねえか

こいつら○した上で捕まって警察の自供で同じようなことを話してそれがニュースにでも流れるなら世の不動産は少しでも変わるのだろうか

もう多分思考は狂ってる 異常者だろう 今はなんとかギリギリ自分をこうして俯瞰して見れてる

それができなくなったときは本当にニュースになるかもな そのときよろしくなお前ら

2020-02-02

anond:20200202090245

RCマンションを4つ経験してまったく無音だったのは1物件のみ。

もちろん構造にもよるが、隣人の民度によるところが大きい。

隣がキャバクラの寮だったときはさすがに無理で引っ越した。

家賃民度はほぼ相関するので家賃ケチってはいけない。

隣が男か女かも重要

女だったらまだ許せるが男のくしゃみとかゲーム音とかだと殺意が湧く。

引っ越しとき挨拶に行くというのも有効だったりする。

但しこれは民度の高いマンションに限る。

相手が誰か分からないところから聞こえる騒音なのかそうじゃないのかは

イライラ度が大分変わってくる。

賃貸住宅で物音に耐えられない。みんなどうしてるの?気にならないの

何度か引っ越してるんだけど、今回の家が上と隣の物音?に悩まされてる。

今は何かわからないが重低音ずーんって鳴ってる。

夜中は一人の足音が響いていて不眠症になってしまった。辛い。

カーテンの開け締めの音もする。

これでRCマンションなんだそうな。もう精神的に無理になって、管理会社に連絡したが対応は無し。

いろいろ調べたところ、戸境壁の厚みが無いとRCだろうが関係ないとのことだった。

ここで思ったんだが、物件情報に壁の厚みの記載いから、普通に選ぶと音が漏れ物件ほとんどじゃないのかって思った。

じゃあ、みんなどうしてるんだ?気にならないものなのだろうか?

どうしてますか?そもそも気にならないのですか?

ちなみに、耳栓イヤーマフノイズキャンセリングイヤホン音楽を流す辺りは試したのですが、効果は足りずと感じました。

次の家は分譲賃貸にしたのですが、契約後に壁の片方がコンクリではないことが発覚し、声が漏れてました。

もう精神的にだいぶきていて、こんなに音が気になるなら死にたいぐらいです。

2019-09-02

[]2019年8月はてブあとで読むトップ30リスト

285あとで/2602users 【転職エントリGoogle入社します|Lillian|note

265あとで/1967users 趣味で作ったソフトウェア海外企業に買われるまでの話 - knqyf263's blog

232あとで/1101users 2019夏、先輩が若手に贈る「お世話になった技術書60選」- 入門からガチまで – | DevelopersIO

231あとで/1177users 無料で読めるITまんが 2019年版 - Publickey

225あとで/2284users 【3868】コンサータによって自己連続性を失いつつある | Dr林のこころと脳の相談

220あとで/1144users 【無料公開終了】廃村で見つかった4人の少年死体から始まる民俗ホラーミステリー短編マンガめっちゃ惹き込まれる人たち - Togetter

202あとで/1000users 実はアイデアの宝庫? 刺激的なWikipedia記事150選|INSPIインスピ)|広告デザインアイデア教科書note

195あとで/1803users 平均年齢30歳のIT企業入社した還暦大工。「1カ月お試し」のつもりが一瞬でなじんだ理由 | BUSINESS INSIDER JAPAN

169あとで/829users 独学でWebサービスを作り起業した僕が選ぶ、オリジナルサービスを作る時に便利なツール19個|かずたか@プログラミング独学して起業した人|note

166あとで/1717users 「容姿が悪く、交際経験が一度もない」47歳女性鴻上尚史本音で応える (1/4) 〈dot.〉|AERA dot. (アエラドット)

163あとで/986users 「GitGitHub用語」の可愛いイラスト使用した解説に対して圧倒的わかりやすさを感じる人たち - Togetter

161あとで/1180users 高齢の両親のために、僕が「実家IT化」を目指してやったこと|tayorini by LIFULL介護

160あとで/1191users 徹夜明けに、知らない人とウイグルを旅した日々のこと|砂漠note

156あとで/853users SFマニアからビギナーまであらゆる層を満足させる、オールタイム・ベスト級の傑作SF短篇集──『なめらかな世界と、その敵』 - 基本読書

150あとで/1032users カメラ苦手な人向け 「カメラ大事故を起こさなポイント」が凄まじく参考になると大好評 - ねとらぼ

140あとで/874users 様々なTODOアプリタスク管理方法試行した結果最終的にプレーンテキストに行き着いた話 - みんからきりまで

134あとで/500users IPA情報セキュリティ白書2019」PDF版の無料公開開始! AIIoTなどをテーマ解説 - INTERNET Watch

131あとで/567users 深層学習の数理

131あとで/1130users 圧倒的キャリアを誇る勝間和代が「社会人にもなって、努力や成長なんて必要ない」と語るワケ|新R25 - 20代ビジネスパーソンバイブル

130あとで/983users TR-808開発者、元Roland社長の菊本忠男さんが40年の時を経て、新バージョンRC-808を発表。度肝を抜くサウンド拡張性を持ち無料リリース | | 藤本健の "DTMステーション"

126あとで/588users 秒間100万リクエストをさばく - Google共通認可基盤 Zanzibar - 発明のための再発明

125あとで/991users 15年間務めた会社に退社を切り出したら史上稀にみるクソ展開になった(後編) - 放浪軍師アプリ開発局

125あとで/1168users 香港が大変すぎて、見ていて悲しい|山本一郎やまもといちろう)|note

123あとで/1171users 今さら聞けない「慰安婦問題の基本を研究者に聞く――なぜ何度も「謝罪」しているのに火種となるのか(2019/08/07 19:45)|サイゾーウーマン

123あとで/493users Node.js徹底攻略ヤフーノウハウに学ぶパフォーマンス劣化コールバック地獄との戦い方 - エンジニアHub|若手Webエンジニアキャリアを考える!

122あとで/517users 新 GitHub Actions 入門 - 生産性向上ブログ

122あとで/907users 介護職歴25年、メイプル超合金安藤なつが語る、介護現場のつらさと楽しさ|tayorini by LIFULL介護

121あとで/531users VSCodeコードを書く時に役立つ設定・テーマ機能拡張、知っておくと便利なテクニック | コリス

119あとで/1266users 教育ボランティア出会った小4の子の話|よんてんごP|note

119あとで/714users 「ビジホの朝食バイキング」を極めた達人が教える、出張旅行で一度は泊まってみたい全国のビジネスホテル - メシ通 | ホットペッパーグルメ

2019-08-29

マンションの音がするかどうかは、どう判断すればいいの?

素材か、隣との隙間か、構造かな

 

前のマンションは床を蹴ってもペチペチって音するしコンクリって感じだったんだけど

今のマンションは床を蹴るとボンボンって太鼓みたいに音がする

もちろん上階の足音バンバン聞こえる(隣は居ないのでわからん

どっちも鉄筋で、前者は10階、後者は3階で後者のほうが高級マンション

 

タワマンとかなら響かないのかなと知り合いに聞いたらそうでもないらしい

引っ越す前にわからんのか

 

___

 

ググって調べた

https://ietty.me/magazine/bouon02/

>壁の厚さが200mm以上の物件を選ぶといいよッ!

 

なるほど

鉄筋かRCかとかは関係ないのか

2019-07-13

anond:20190710221728

耐震壁式のRC構造マンションを買え。

具体的には3〜5階建ての団地だ。ただし川沿いとかの軟弱地盤はやめとけよ。

東京は知らんが地方なら400万円も出せば買えるだろう。

マンション耐震基準1981年を境に大きく変わった。

1981年以前に建てられたマンションは旧耐震扱いでかなり安い。

マンション工法にはラーメン構造と壁式構造というのがあって、壁式構造耐震基準は旧耐震と新耐震ほとんど変わっていない。

この壁式構造っていうのは5階建てまでしか作れない。公団公社分譲の団地で多く採用されている。

マンション間取りを見たときに、柱や壁の出っ歯理がなくて平面な壁で構成されているのが壁式構造だ。

リノベーションするときに壁式だと間取りを大きく変えられないから、「中古マンションを買うならラーメン構造おすすめ!」なんて言われているが、耐震を気にするならまったく逆だ。

団地を安く買ってリノベーションして住むのだ。

エレベーターがないのは我慢しろ

揺れにくい地盤団地は往々にして丘の上や斜面に立っていたりするが、坂も我慢しろ

揺れにくさと坂や階段トレードオフだ。

エレベーターなんて無いほうが管理費修繕積立金が安く住む。

団地を買うのだ。

2019-06-14

anond:20190612225831

うちもそんな感じ

書類上はRCマンションなのに、夜はTVだかYoutubeだかの声がいつまでも聞こえ、朝は隣の携帯バイアラーム振動音で目覚める

家賃比較的安いか我慢してるけどね

しかし防音がしっかりした壁ってどう判別すればいいんだ?

この物件の壁だって、叩くと木造のようにドンドン言うわけではなく「ボスッ…」と衝撃が吸収される感じがするから、これなら大丈夫だと思って契約したはずなんよ

2019-06-12

RC造なのに防音大ハズレ物件で大大大後悔

RC造なら防音は大丈夫だろうと思って築浅1Kに引っ越ししたら、これが大外れ。

結構家賃を奮発したんぞ。

かに部屋の主要部分は床が厚くて頼りがいのある質感だけれども、壁が木造かそれ以下の防音性で殺意しか感じない。

マジで、朝は隣人の目覚ましで起きるわけ。ピピピピッって。私の出勤時間まであと2時間あるんですけど。

それで、基本的キッチンへの扉や外への扉を閉める音が、ガチャドン!ってめっちゃ響く。

で、キッチン部分の床板が薄くて何か床下に反響しているっぽくて、RCなのに隣室の足音がドカドカ聞こえる。

そんでさ、土曜の朝はギュイーンて掃除機の音で起こされるわけ。実家かよ。こっちも掃除機使えないじゃないか

なんか大家族で同居してるかシェアハウス並みの気配を感じる。上京依頼ずっと独り暮らしで通してきたので、心落ち着かない。

不思議なことに、洗濯機の音や風呂の流水音は聞こえない。

夜は隣人はめちゃ笑ってる声が聞こえてくる。なにがそんなにおもろいねん?

ボイスチャットか何かをしてるっぽいけど会話の内容までは聞こえない。

昨晩はずいぶんと咳をしていたけど、体調大丈夫

時々隣人が壁にぶつかるドンっという音で、目が覚めたりする。いったいどうゆう生活したら壁にゴンゴンぶつける生活になるわけ?

早朝に大騒ぎしていたこともあったぞ。その日が有給じゃなかったら通報してたぞ。

こっちの音がどこまで隣人に聞こえてるのかちょっと不安なんだよね。こうやって夜中にキーボードつの迷惑だったりするんだろうか。普段ぶつぶつ独りごと行ったり鼻歌歌ってるのも聞こえてるんだろうか。一番困るのはオナってるのも気配で聞かれてたりするんだろうか。はあ耐えられないぞ。

はあ、また20万浪費かよ。絶対引っ越すぞ、次はちゃんと側面もコンクリになったちゃんとしたRC造りに住むぞ!!!!!

田舎地元不動産よ、震えて眠れ。

2019-05-30

2年で3回引っ越し

一軒目

天井ヤスデが出没 

しかも一回ではない毎日

虫が大の苦手な自分は耐えきれなくなり引越

二軒目

隣家がうるさい 音楽が丸聞こえ

仲介業者相談したが解決せず

勇気を出し直接文句を言ったがなぜか逆に悪化

三軒目

ネットで調べるとrc鉄筋なら音は聞こえないとドヤ顔で書き込んである

なら分かった多少値は貼るがしょうがないとrc鉄筋に引っ越し

が二軒目同様騒音問題

今度は足音(物音)である

音の大きさでは耳栓を突っ込めば聞こえなくなった二軒目とは違い三軒目は普通に聞こえる

24時間かいるのか知らんがずっと音がする

正直まともに寝ることもできない

同様に管理会社相談したが解決せず

20代もなかば独身男性であるが情けない話だがこの年でわんわんと泣いてしまった

自分の運のなさと社会理不尽さに

この書き込みも泣きに泣きつくして無の感情で書き込んでいる

日増しに目のクマも増えている

犯罪を犯す人はどんな気持ちなんだろうと思ってたけど最近なんとなく分かってきた気がする

生活の基盤である住居がストレスになるとこんなに"クる"ものだと思ってなかった

引っ越し検討している人 くれぐれも物件は慎重に選んでほしい

まあ不動産は嘘しか言わないが

(いや俺が不細工から悪いのであってイケメン美女ならまたいい物件を紹介してくれる可能性が高いかもしれない)

2019-05-14

anond:20190514224512

https://10mtv.jp/pc/column/article.php?column_article_id=2160

 1つ目は機会費用法という、家事をしていて仕事に出ていなかった時間を、もし賃金の出る仕事に充てていた場合報酬金額を算定する方法です。最低賃金に照らし合わせてみると、平成30年10月時点の最低賃金は全国平均で時給874円なので、1日6時間、365日で計算すると月15万7320円、年収は191万4060円となります

 2つ目はRC-S法という、その仕事職業にしている人の賃金に換算するものです。今回は家事代行サービスで働く人は平均時給が1185円とされています専業主婦家事に費やしている1日6時間家事代行業者の時給で計算してみると、月21万3300円、年収は259万5150円となります

 一方、別の調査結果となりますが、キリンビール株式会社平成28年9月専門家の監修のもとでおこなった「主婦年収シミュレーター」の調査結果によると、専業主婦主夫)が1日に家事に充てる時間は平均5.3時間、その年収はなんと469万8670円という金額になりました。この調査では一般企業給与体系、家事代行サービス市場価格、そして実際に家事を行う主婦主夫)の実感値を踏まえた独自ロジックから算出されたもの上記の結果と比べると、大きな差があることが分かります

 

家事を行う主婦主夫)の実感値を踏まえた独自ロジック

 

なるもの妄信できるセンスわからんなー

anond:20190514224754

都合のいいところだけ引っぱり出して引用するのはねつ造と変わらんぞ

全国の主婦主夫)の平均家事年収は、469万8670円という結果になりました。

家事代行サービスで働く人は平均時給が1185円とされています専業主婦家事に費やしている1日6時間家事代行業者の時給で計算してみると、月21万3300円、年収は259万5150円となります

1日平均6時間家事家事代行サービスに依頼すると、年間で438万円~657万円ものコストがかかることになります(1時間あたり2000~3000円相場から計算)。

 

元請単価月50万、月収18万のIT派遣年収600万みたいな計算やな

2019-01-24

anond:20190124075118

実家 木造一戸建て 1990年

特に気にならなかった。

2階建木造アパート 1973年築 1階角部屋

特に気にならなかった。隣室がしょっちゅう女連れ込んでたが何も聞こえたことなし。

2階建木造アパート 1980年築 1階

特に気にならなかった。自室に大人数で集まって騒ぐこともあったが、後日隣人に謝っても聞こえなかったと言われる。上階の洗濯機(室内)や掃除機だけは振動が伝わるのか聞こえた。

4階建RCマンション 1978年築 4階角部屋(現住居)

特に気にならないが、特別かになったとも思わない。部屋に隣接しているエレベーターが古くてうるさいので、その音だけは聞こえる。

まともな木造建築は存在する。2000年代以降は不明

2019-01-18

anond:20190118084824

RC(鉄筋コンクリート造)

SRC(鉄筋鉄骨コンクリート造)

・軽鉄(軽量鉄骨造)

・鉄骨造

その他たくさんあるぞ。

突っ込む前にググレよw ノータリンかwwww

2019-01-03

anond:20190103184241

// WindowsProject7.cpp: アプリケーションエントリ ポイント定義します。
//

#include "stdafx.h"
#include "WindowsProject7.h"

#define MAX_LOADSTRING 100

// グローバル変数:
HINSTANCE hInst;                                // 現在インターフェイス
WCHAR szTitle[MAX_LOADSTRING];                  // タイトル バーテキスト
WCHAR szWindowClass[MAX_LOADSTRING];            // メイン ウィンドウ クラス名

// このコード モジュールに含まれ関数宣言転送します:
//ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

#include <list>

class MyWindow;
	
std::list< MyWindow *> windows;

class MyWindow
{
public:

	HWND hWnd;



	MyWindow()
		:hWnd(NULL)
	{
		windows.push_back(this);
	}

	virtual ~MyWindow()
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			if (*it == this)
			{
				windows.erase(it);
				break;
			}
		}
	}

	static MyWindow * find(HWND key)
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			MyWindow *target = *it;

			if (target->hWnd == key)
			{
				return target;
			}

		}

		return NULL;
	}



	//
	//  関数: MyRegisterClass()
	//
	//  目的: ウィンドウ クラス登録します。
	//
	ATOM MyRegisterClass(HINSTANCE hInstance)
	{
		WNDCLASSEXW wcex;

		wcex.cbSize = sizeof(WNDCLASSEX);

		wcex.style = CS_HREDRAW | CS_VREDRAW;
		wcex.lpfnWndProc = WndProc;
		wcex.cbClsExtra = 0;
		wcex.cbWndExtra = 0;
		wcex.hInstance = hInstance;
		wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT7));
		wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
		wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
		wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT7);
		wcex.lpszClassName = szWindowClass;
		wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

		return RegisterClassExW(&wcex);
	}

	//
	//   関数: InitInstance(HINSTANCE, int)
	//
	//   目的: インスタンス ハンドルを保存して、メイン ウィンドウ作成します。
	//
	//   コメント:
	//
	//        この関数で、グローバル変数インスタンス ハンドルを保存し、
	//        メイン プログラム ウィンドウ作成および表示します。
	//

	int blocks[100][100];

	BOOL InitInstance()
	{
		hInst = hInstance; // グローバル変数インスタンス処理を格納します。

		ATOM c = MyRegisterClass(hInstance);
		x = 0;
		y = 0;
		boxType = 0;

		hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
			CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);

		for(int x = 0 ; x < 100 ; x++)
		{
			for (int y = 0; y < 100; y++)
			{
				blocks[y][x] = 0;
			}
		}

		if (!hWnd)
		{
			return FALSE;
		}

		return TRUE;
	}

	BOOL ShowWindow()
	{
		BOOL ret;
		ret = ::ShowWindow(hWnd, SW_SHOW);
		::UpdateWindow(hWnd);

		return ret;
	}


	HINSTANCE hInstance;
	MSG msg;
	BOOL run;
	int x;
	int y;
	BOOL Main()
	{

		HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT7));
		run = true;
		int rc;
		// メイン メッセージ ループ:
		while (run)
		{
			DWORD obj = MsgWaitForMultipleObjectsEx(0, NULL,  100 , QS_PAINT| QS_ALLEVENTS,0);
			if (obj <= WAIT_OBJECT_0)
			{
				while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
				{
					if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
					{
						TranslateMessage(&msg);
						DispatchMessage(&msg);
					}
					if (msg.message == WM_QUIT) {
						run = FALSE;
					}
					if (msg.message == WM_CLOSE) {
						run = FALSE;
					}

				}
			}
			else if (obj == WAIT_TIMEOUT)
			{
				y++;
				PAINTSTRUCT ps;
				HDC hdc = BeginPaint(hWnd, &ps);
				this->OnPaint(ps);
				EndPaint(hWnd, &ps);
				::UpdateWindow(hWnd);
				RECT Rect2 = { 0,0,48*9,48 * 100 };
				InvalidateRect(hWnd, &Rect2, TRUE);
			}
			else if (obj == WAIT_FAILED)
			{
				rc = GetLastError();
			}
			else {

			}
		}


		return TRUE;

	}

	int boxType;

	BOOL WriteBoxOLDBox()
	{
		int width = 24;

		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 48));
		for (int y = 0; y < 30; y++)
		{
			for (int x = 0; x < 8; x++)
			{
				if (blocks[y][x] == 0)
				{
					continue;
				}

				RECT Rect = { 0,0,48,48 };
				BOOL ret;

				Rect.left = width * x + 1;
				Rect.right = width * (x + 1) - 1;
				Rect.top = width * y + 1;
				Rect.bottom = width * (y + 1) - 1;

				ret = FillRect(hdc, &Rect, hBrush);


			}
		}

		DeleteObject(hBrush);

		return FALSE;
	}


	BOOL WriteBox()
	{
		WriteBoxOLDBox();

		switch (boxType)
		{
		case 0:
			return WriteBoxI();
		case 1:
			return WriteBoxL();
		case 2:
			return WriteBoxZ();

		}

		return TRUE;
	}

	BOOL WriteBoxZ()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) - 1;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) - 1;

		ret = FillRect(hdc, &Rect, hBrush);


		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.left += width;
		Rect.right += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);


		DeleteObject(hBrush);

		return TRUE;
	}


	BOOL WriteBoxL()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 246 , 48));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) -1 ;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) -1;

		ret = FillRect(hdc, &Rect, hBrush);


		Rect.top    += width; 
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.left   += width;
		Rect.right  += width;
		ret = FillRect(hdc, &Rect, hBrush);

		DeleteObject(hBrush);

		return TRUE;
	}

	BOOL WriteBoxI()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB( 246 , 48 , 48));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) - 1;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) - 1;

		ret = FillRect(hdc, &Rect, hBrush);


		//Rect.left   += width;
		//Rect.right  += width;
		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		DeleteObject(hBrush);

		return TRUE;
	}

	BOOL SaveBoxI()
	{
		blocks[y  ][x] = 1;
		blocks[y+1][x] = 1;
		blocks[y+2][x] = 1;
		blocks[y+3][x] = 1;
		return TRUE;
	}


	BOOL OnPaint(PAINTSTRUCT &ps)
	{
		if (x > 8) {
			x = 0;
		}
		if (x <0) {
			x = 8;
		}
		if (y > 20) {
			switch (boxType)
			{
			case 0:
				SaveBoxI();
				break;
			case 1:
				break;
			case 2:
				break;
			}

			y = 0;
			boxType++;
			if (boxType > 2)
			{
				boxType = 0;
			}
		}

		this->WriteBox();

		return TRUE;
	}



	BOOL OnKey(WPARAM wParam)
	{
		if (wParam == VK_LEFT)
		{
			x++;
		}
		if (wParam == VK_RIGHT)
		{
			x--;
		}
		return TRUE;
	}


};


int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // TODO: ここにコードを挿入してください。

    // グローバル文字列初期化しています。
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_WINDOWSPROJECT7, szWindowClass, MAX_LOADSTRING);
    //MyRegisterClass(hInstance);



	MyWindow win;



	win.hInstance = hInstance;

	// アプリケーション初期化を実行します:
	if (!win.InitInstance())
	{
		return FALSE;
	}

	BOOL ret;

	win.ShowWindow();

	ret = win.Main();

	if (ret)
	{
		return 0;
	}else {
		return (int)win.msg.wParam;
	}



}






//
//  関数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的:    メイン ウィンドウメッセージを処理します。
//
//  WM_COMMAND  - アプリケーション メニューの処理
//  WM_PAINT    - メイン ウィンドウの描画
//  WM_DESTROY  - 中止メッセージを表示して戻る
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // 選択されたメニューの解析:
            switch (wmId)
            {
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
		break;
	case WM_KEYDOWN:
		{
			MyWindow *target = MyWindow::find(hWnd);
			target->OnKey(wParam);
		}
	break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);

			MyWindow *target = MyWindow::find(hWnd);
			target->OnPaint(ps);


            // TODO: HDC を使用する描画コードをここに追加してください...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

// バージョン情報ボックスメッセージ ハンドラーです。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}

anond:20190103170543

テトリス

落ちてくるブロックの描き方

わかりやす関数化してみた

まずはブロックの種類は3種類

 

WriteBoxLとWriteBoxIとWriteBoxZ

の違いをよく見比べて

自力で違いがわかれば

プログラマーにはなれるとおもう

とはいえ、コレを自力でわかるならもっと儲かる仕事あるとはおもうけどな

 

	BOOL WriteBox()
	{
		switch (boxType)
		{
		case 0:
			return WriteBoxI();
		case 1:
			return WriteBoxL();
		case 2:
			return WriteBoxZ();

		}
	}
// WindowsProject7.cpp: アプリケーションエントリ ポイント定義します。
//

#include "stdafx.h"
#include "WindowsProject7.h"

#define MAX_LOADSTRING 100

// グローバル変数:
HINSTANCE hInst;                                // 現在インターフェイス
WCHAR szTitle[MAX_LOADSTRING];                  // タイトル バーテキスト
WCHAR szWindowClass[MAX_LOADSTRING];            // メイン ウィンドウ クラス名

// このコード モジュールに含まれ関数宣言転送します:
//ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

#include <list>

class MyWindow;
	
std::list< MyWindow *> windows;

class MyWindow
{
public:

	HWND hWnd;



	MyWindow()
		:hWnd(NULL)
	{
		windows.push_back(this);
	}

	virtual ~MyWindow()
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			if (*it == this)
			{
				windows.erase(it);
				break;
			}
		}
	}

	static MyWindow * find(HWND key)
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			MyWindow *target = *it;

			if (target->hWnd == key)
			{
				return target;
			}

		}

		return NULL;
	}



	//
	//  関数: MyRegisterClass()
	//
	//  目的: ウィンドウ クラス登録します。
	//
	ATOM MyRegisterClass(HINSTANCE hInstance)
	{
		WNDCLASSEXW wcex;

		wcex.cbSize = sizeof(WNDCLASSEX);

		wcex.style = CS_HREDRAW | CS_VREDRAW;
		wcex.lpfnWndProc = WndProc;
		wcex.cbClsExtra = 0;
		wcex.cbWndExtra = 0;
		wcex.hInstance = hInstance;
		wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT7));
		wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
		wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
		wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT7);
		wcex.lpszClassName = szWindowClass;
		wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

		return RegisterClassExW(&wcex);
	}

	//
	//   関数: InitInstance(HINSTANCE, int)
	//
	//   目的: インスタンス ハンドルを保存して、メイン ウィンドウ作成します。
	//
	//   コメント:
	//
	//        この関数で、グローバル変数インスタンス ハンドルを保存し、
	//        メイン プログラム ウィンドウ作成および表示します。
	//
	BOOL InitInstance()
	{
		hInst = hInstance; // グローバル変数インスタンス処理を格納します。

		ATOM c = MyRegisterClass(hInstance);
		x = 0;
		y = 0;
		boxType = 0;

		hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
			CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);

		if (!hWnd)
		{
			return FALSE;
		}

		return TRUE;
	}

	BOOL ShowWindow()
	{
		BOOL ret;
		ret = ::ShowWindow(hWnd, SW_SHOW);
		::UpdateWindow(hWnd);

		return ret;
	}


	HINSTANCE hInstance;
	MSG msg;
	BOOL run;
	int x;
	int y;
	BOOL Main()
	{

		HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT7));
		run = true;
		int rc;
		// メイン メッセージ ループ:
		while (run)
		{
			DWORD obj = MsgWaitForMultipleObjectsEx(0, NULL,  100 , QS_PAINT| QS_ALLEVENTS,0);
			if (obj <= WAIT_OBJECT_0)
			{
				while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
				{
					if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
					{
						TranslateMessage(&msg);
						DispatchMessage(&msg);
					}
					if (msg.message == WM_QUIT) {
						run = FALSE;
					}
					if (msg.message == WM_CLOSE) {
						run = FALSE;
					}

				}
			}
			else if (obj == WAIT_TIMEOUT)
			{
				y++;
				PAINTSTRUCT ps;
				HDC hdc = BeginPaint(hWnd, &ps);
				this->OnPaint(ps);
				EndPaint(hWnd, &ps);
				::UpdateWindow(hWnd);
				RECT Rect2 = { 0,0,48*9,48 * 8 };
				InvalidateRect(hWnd, &Rect2, TRUE);
			}
			else if (obj == WAIT_FAILED)
			{
				rc = GetLastError();
			}
			else {

			}
		}


		return TRUE;

	}

	int boxType;

	BOOL WriteBox()
	{
		switch (boxType)
		{
		case 0:
			return WriteBoxI();
		case 1:
			return WriteBoxL();
		case 2:
			return WriteBoxZ();

		}
	}

	BOOL WriteBoxZ()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) - 1;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) - 1;

		ret = FillRect(hdc, &Rect, hBrush);


		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.left += width;
		Rect.right += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);


		DeleteObject(hBrush);

		return TRUE;
	}


	BOOL WriteBoxL()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) -1 ;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) -1;

		ret = FillRect(hdc, &Rect, hBrush);


		Rect.top    += width; 
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.left   += width;
		Rect.right  += width;
		ret = FillRect(hdc, &Rect, hBrush);

		DeleteObject(hBrush);

		return TRUE;
	}

	BOOL WriteBoxI()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) - 1;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) - 1;

		ret = FillRect(hdc, &Rect, hBrush);


		//Rect.left   += width;
		//Rect.right  += width;
		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		DeleteObject(hBrush);

		return TRUE;
	}


	BOOL OnPaint(PAINTSTRUCT &ps)
	{
		if (x > 8) {
			x = 0;
		}
		if (x <0) {
			x = 8;
		}
		if (y > 8) {
			y = 0;
			boxType++;
			if (boxType > 2)
			{
				boxType = 0;
			}
		}

		this->WriteBox();

		return TRUE;
	}



	BOOL OnKey()
	{
		x++;
		return TRUE;
	}


};


int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // TODO: ここにコードを挿入してください。

    // グローバル文字列初期化しています。
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_WINDOWSPROJECT7, szWindowClass, MAX_LOADSTRING);
    //MyRegisterClass(hInstance);



	MyWindow win;



	win.hInstance = hInstance;

	// アプリケーション初期化を実行します:
	if (!win.InitInstance())
	{
		return FALSE;
	}

	BOOL ret;

	win.ShowWindow();

	ret = win.Main();

	if (ret)
	{
		return 0;
	}else {
		return (int)win.msg.wParam;
	}



}






//
//  関数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的:    メイン ウィンドウメッセージを処理します。
//
//  WM_COMMAND  - アプリケーション メニューの処理
//  WM_PAINT    - メイン ウィンドウの描画
//  WM_DESTROY  - 中止メッセージを表示して戻る
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // 選択されたメニューの解析:
            switch (wmId)
            {
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
		break;
	case WM_KEYDOWN:
		{
			MyWindow *target = MyWindow::find(hWnd);
			target->OnKey();
		}
	break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);

			MyWindow *target = MyWindow::find(hWnd);
			target->OnPaint(ps);


            // TODO: HDC を使用する描画コードをここに追加してください...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

// バージョン情報ボックスメッセージ ハンドラーです。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}

anond:20190101175055

テトリス風?プログラムに向けて

第何回だろうな

キー入力を追加した

まだ、何を押してもブロックが右に移動するだけ(右端にいくと左にワープ

タイマー自動落下

 

でもまぁ ここまでサンプルがあるとほぼテトリスは見えてきた

// WindowsProject7.cpp: アプリケーションエントリ ポイント定義します。
//

#include "stdafx.h"
#include "WindowsProject7.h"

#define MAX_LOADSTRING 100

// グローバル変数:
HINSTANCE hInst;                                // 現在インターフェイス
WCHAR szTitle[MAX_LOADSTRING];                  // タイトル バーテキスト
WCHAR szWindowClass[MAX_LOADSTRING];            // メイン ウィンドウ クラス名

// このコード モジュールに含まれ関数宣言転送します:
//ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

#include <list>

class MyWindow;
	
std::list< MyWindow *> windows;

class MyWindow
{
public:

	HWND hWnd;



	MyWindow()
		:hWnd(NULL)
	{
		windows.push_back(this);
	}

	virtual ~MyWindow()
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			if (*it == this)
			{
				windows.erase(it);
				break;
			}
		}
	}

	static MyWindow * find(HWND key)
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			MyWindow *target = *it;

			if (target->hWnd == key)
			{
				return target;
			}

		}

		return NULL;
	}



	//
	//  関数: MyRegisterClass()
	//
	//  目的: ウィンドウ クラス登録します。
	//
	ATOM MyRegisterClass(HINSTANCE hInstance)
	{
		WNDCLASSEXW wcex;

		wcex.cbSize = sizeof(WNDCLASSEX);

		wcex.style = CS_HREDRAW | CS_VREDRAW;
		wcex.lpfnWndProc = WndProc;
		wcex.cbClsExtra = 0;
		wcex.cbWndExtra = 0;
		wcex.hInstance = hInstance;
		wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT7));
		wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
		wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
		wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT7);
		wcex.lpszClassName = szWindowClass;
		wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

		return RegisterClassExW(&wcex);
	}

	//
	//   関数: InitInstance(HINSTANCE, int)
	//
	//   目的: インスタンス ハンドルを保存して、メイン ウィンドウ作成します。
	//
	//   コメント:
	//
	//        この関数で、グローバル変数インスタンス ハンドルを保存し、
	//        メイン プログラム ウィンドウ作成および表示します。
	//
	BOOL InitInstance()
	{
		hInst = hInstance; // グローバル変数インスタンス処理を格納します。

		ATOM c = MyRegisterClass(hInstance);
		x = 0;
		y = 0;

		hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
			CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);

		if (!hWnd)
		{
			return FALSE;
		}

		return TRUE;
	}

	BOOL ShowWindow()
	{
		BOOL ret;
		ret = ::ShowWindow(hWnd, SW_SHOW);
		::UpdateWindow(hWnd);

		return ret;
	}


	HINSTANCE hInstance;
	MSG msg;
	BOOL run;
	int x;
	int y;
	BOOL Main()
	{

		HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT7));
		run = true;
		int rc;
		// メイン メッセージ ループ:
		while (run)
		{
			DWORD obj = MsgWaitForMultipleObjectsEx(0, NULL,  100 , QS_PAINT| QS_ALLEVENTS,0);
			if (obj <= WAIT_OBJECT_0)
			{
				while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
				{
					if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
					{
						TranslateMessage(&msg);
						DispatchMessage(&msg);
					}
					if (msg.message == WM_QUIT) {
						run = FALSE;
					}
					if (msg.message == WM_CLOSE) {
						run = FALSE;
					}

				}
			}
			else if (obj == WAIT_TIMEOUT)
			{
				y++;
				PAINTSTRUCT ps;
				HDC hdc = BeginPaint(hWnd, &ps);
				this->OnPaint(ps);
				EndPaint(hWnd, &ps);
				::UpdateWindow(hWnd);
				RECT Rect2 = { 0,0,48*9,48 * 8 };
				InvalidateRect(hWnd, &Rect2, TRUE);
			}
			else if (obj == WAIT_FAILED)
			{
				rc = GetLastError();
			}
			else {

			}
		}


		return TRUE;

	}

	BOOL OnPaint(PAINTSTRUCT &ps)
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));
		RECT Rect = { 0,0,48,48 };
		Rect.left = 48 * x;
		Rect.right = 48 * (x+1);
		Rect.top = 48 * y;
		Rect.bottom = 48 * (y+1);
		if (x > 8) {
			x = 0;
		}
		if (x <0) {
			x = 8;
		}
		if (y > 8) {
			y = 0;
		}
		BOOL ret = FillRect(ps.hdc, &Rect, hBrush);
		DeleteObject(hBrush);

		return TRUE;
	}

	BOOL OnKey()
	{
		x++;
		return TRUE;
	}


};


int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // TODO: ここにコードを挿入してください。

    // グローバル文字列初期化しています。
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_WINDOWSPROJECT7, szWindowClass, MAX_LOADSTRING);
    //MyRegisterClass(hInstance);



	MyWindow win;



	win.hInstance = hInstance;

	// アプリケーション初期化を実行します:
	if (!win.InitInstance())
	{
		return FALSE;
	}

	BOOL ret;

	win.ShowWindow();

	ret = win.Main();

	if (ret)
	{
		return 0;
	}else {
		return (int)win.msg.wParam;
	}



}






//
//  関数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的:    メイン ウィンドウメッセージを処理します。
//
//  WM_COMMAND  - アプリケーション メニューの処理
//  WM_PAINT    - メイン ウィンドウの描画
//  WM_DESTROY  - 中止メッセージを表示して戻る
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // 選択されたメニューの解析:
            switch (wmId)
            {
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
		break;
	case WM_KEYDOWN:
		{
			MyWindow *target = MyWindow::find(hWnd);
			target->OnKey();
		}
	break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);

			MyWindow *target = MyWindow::find(hWnd);
			target->OnPaint(ps);


            // TODO: HDC を使用する描画コードをここに追加してください...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

// バージョン情報ボックスメッセージ ハンドラーです。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}

2019-01-01

anond:20190101174626

こんな感じ

GetMessageの上にタイマーも扱える

MsgWaitForMultipleObjectsExを追加

GetMessageだとタイマーを処理できないのでPeekMessageに変更

>なぜかは ちょっと考えると面白い

Getとき必要なかった 終了処理を追加

msg.message == WM_QUIT

この部分 QUITメッセージが来たら終了する

obj == WAIT_TIMEOUT

タイマーを追加

y++で高さを変更してから

作画を呼ぶ

こんだけ

<が<

>が&GT

&が&

にかわっちゃってるので各自で置換してね

	HINSTANCE hInstance;
	MSG msg;
	BOOL run;
	int y;
	BOOL Main()
	{

		HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT7));
		run = true;
		int rc;
		// メイン メッセージ ループ:
		while (run)
		{
			DWORD obj = MsgWaitForMultipleObjectsEx(0, NULL,  100 , QS_PAINT| QS_ALLEVENTS,0);
			if (obj <= WAIT_OBJECT_0)
			{
				while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
				{
					if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
					{
						TranslateMessage(&msg);
						DispatchMessage(&msg);
					}
					if (msg.message == WM_QUIT) {
						run = FALSE;
					}
					if (msg.message == WM_CLOSE) {
						run = FALSE;
					}

				}
			}
			else if (obj == WAIT_TIMEOUT)
			{
				y++;
				PAINTSTRUCT ps;
				HDC hdc = BeginPaint(hWnd, &ps);
				this->OnPaint(ps);
				EndPaint(hWnd, &ps);
				::UpdateWindow(hWnd);
				RECT Rect2 = { 0,0,48,48 * 8 };
				InvalidateRect(hWnd, &Rect2, TRUE);
			}
			else if (obj == WAIT_FAILED)
			{
				rc = GetLastError();
			}
			else {

			}
		}

anond:20190101172100

タイマーを使ったアニメーションを付けた

// WindowsProject7.cpp: アプリケーションエントリ ポイント定義します。
//

#include "stdafx.h"
#include "WindowsProject7.h"

#define MAX_LOADSTRING 100

// グローバル変数:
HINSTANCE hInst;                                // 現在インターフェイス
WCHAR szTitle[MAX_LOADSTRING];                  // タイトル バーテキスト
WCHAR szWindowClass[MAX_LOADSTRING];            // メイン ウィンドウ クラス名

// このコード モジュールに含まれ関数宣言転送します:
//ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

#include <list>

class MyWindow;
	
std::list< MyWindow *> windows;

class MyWindow
{
public:

	HWND hWnd;



	MyWindow()
		:hWnd(NULL)
	{
		windows.push_back(this);
	}

	virtual ~MyWindow()
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			if (*it == this)
			{
				windows.erase(it);
				break;
			}
		}
	}

	static MyWindow * find(HWND key)
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			MyWindow *target = *it;

			if (target->hWnd == key)
			{
				return target;
			}

		}

		return NULL;
	}



	//
	//  関数: MyRegisterClass()
	//
	//  目的: ウィンドウ クラス登録します。
	//
	ATOM MyRegisterClass(HINSTANCE hInstance)
	{
		WNDCLASSEXW wcex;

		wcex.cbSize = sizeof(WNDCLASSEX);

		wcex.style = CS_HREDRAW | CS_VREDRAW;
		wcex.lpfnWndProc = WndProc;
		wcex.cbClsExtra = 0;
		wcex.cbWndExtra = 0;
		wcex.hInstance = hInstance;
		wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT7));
		wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
		wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
		wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT7);
		wcex.lpszClassName = szWindowClass;
		wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

		return RegisterClassExW(&wcex);
	}

	//
	//   関数: InitInstance(HINSTANCE, int)
	//
	//   目的: インスタンス ハンドルを保存して、メイン ウィンドウ作成します。
	//
	//   コメント:
	//
	//        この関数で、グローバル変数インスタンス ハンドルを保存し、
	//        メイン プログラム ウィンドウ作成および表示します。
	//
	BOOL InitInstance()
	{
		hInst = hInstance; // グローバル変数インスタンス処理を格納します。

		ATOM c = MyRegisterClass(hInstance);
		y = 0;

		hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
			CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);

		if (!hWnd)
		{
			return FALSE;
		}

		return TRUE;
	}

	BOOL ShowWindow()
	{
		BOOL ret;
		ret = ::ShowWindow(hWnd, SW_SHOW);
		::UpdateWindow(hWnd);

		return ret;
	}


	HINSTANCE hInstance;
	MSG msg;
	BOOL run;
	int y;
	BOOL Main()
	{

		HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT7));
		run = true;
		int rc;
		// メイン メッセージ ループ:
		while (run)
		{
			DWORD obj = MsgWaitForMultipleObjectsEx(0, NULL,  100 , QS_PAINT| QS_ALLEVENTS,0);
			if (obj <= WAIT_OBJECT_0)
			{
				while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
				{
					if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
					{
						TranslateMessage(&msg);
						DispatchMessage(&msg);
					}
					if (msg.message == WM_QUIT) {
						run = FALSE;
					}
					if (msg.message == WM_CLOSE) {
						run = FALSE;
					}

				}
			}
			else if (obj == WAIT_TIMEOUT)
			{
				y++;
				PAINTSTRUCT ps;
				HDC hdc = BeginPaint(hWnd, &ps);
				this->OnPaint(ps);
				EndPaint(hWnd, &ps);
				::UpdateWindow(hWnd);
				RECT Rect2 = { 0,0,48,48 * 8 };
				InvalidateRect(hWnd, &Rect2, TRUE);
			}
			else if (obj == WAIT_FAILED)
			{
				rc = GetLastError();
			}
			else {

			}
		}


		return TRUE;

	}

	BOOL OnPaint(PAINTSTRUCT &ps)
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));
		RECT Rect = { 0,0,48,48 };
		Rect.top = 48 * y;
		Rect.bottom = 48 * (y+1);
		if (y > 8) {
			y = 0;
		}
		BOOL ret = FillRect(ps.hdc, &Rect, hBrush);
		DeleteObject(hBrush);

		return TRUE;
	}


};


int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // TODO: ここにコードを挿入してください。

    // グローバル文字列初期化しています。
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_WINDOWSPROJECT7, szWindowClass, MAX_LOADSTRING);
    //MyRegisterClass(hInstance);



	MyWindow win;



	win.hInstance = hInstance;

	// アプリケーション初期化を実行します:
	if (!win.InitInstance())
	{
		return FALSE;
	}

	BOOL ret;

	win.ShowWindow();

	ret = win.Main();

	if (ret)
	{
		return 0;
	}else {
		return (int)win.msg.wParam;
	}



}






//
//  関数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的:    メイン ウィンドウメッセージを処理します。
//
//  WM_COMMAND  - アプリケーション メニューの処理
//  WM_PAINT    - メイン ウィンドウの描画
//  WM_DESTROY  - 中止メッセージを表示して戻る
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // 選択されたメニューの解析:
            switch (wmId)
            {
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
        break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);

			MyWindow *target = MyWindow::find(hWnd);
			target->OnPaint(ps);


            // TODO: HDC を使用する描画コードをここに追加してください...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

// バージョン情報ボックスメッセージ ハンドラーです。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}

2018-12-20

anond:20181220233124

世界一の国と比べて遜色がない時代があったんだよ。

コンクリートだと広島大の田澤先生自己収縮を発見し、東大前川先生RC構成則をバリバリ作ってた時。

IPSとかもそうだけど、何かを発見する余地がある時は日本人は強いと思う。(発見したもの勝ちなので政治大学内間、省庁とかのね)とかに作用されにくいからかな?)

今のコンクリートは分かりすぎてしまって(まだ分からんとこはたくさんあるけど)、みんな迷ってるんだよね。

中国みたいに新しい材料を使いまくればまだ何かあるかもしれないけど、日本で新しい材料絶望的に使われない(主に建築基準法のせい)。

技術書とは離れるかもしれないけれど、そういう状況だと、人口多い方が有利なのかなと思う。まぁ人口だけじゃないかもしれんが。

2018-09-04

anond:20180904162710

fだおおっみいり落ちjjfiojewjjiewじじょいd塩jj2位vjij2jvkl2v57cdcd2p2mocdンvンvpvivijvp929ijhuhvh@vンj@ンjcジョnoi vjvjivivジョッジ2ジv ji 2ji2vhvうhvvkdjkfoa;mwowowiwopaa@a03-r00kf,g.:b;.rc[.0-[.-ita4bm90yj,l\.],^4wi9-

2018-06-29

色々言われてるけどニコニコ動画凋落した最大の原因

それは「ユーザが求める技術水準に対応できて居なかったから」だよ。

とりあえずコレを見て欲しい。

ニコニコ動画(仮)2006.12.12

ニコニコ動画(β) 2007.1.15

ニコニコ動画(γ)2007.3.6

ニコニコ動画RC)2007.6.18

ニコニコ動画RC2)2007.10.10

ニコニコ動画(SP1)2008.3.5

ニコニコ動画(夏)2008.7.6

ニコニコ動画(秋)2008.10.1

ニコニコ動画(冬)2008.12.5

ニコニコ動画(ββ)2008.12.12

ニコニコ動画(9)2009.10.29

ニコニコ動画(原宿)2010.10.29

ニコニコ動画:Zero 2012.5.1

ニコニコ動画:Q 2012.10.17

ニコニコ動画:GINZA 2013.10.8

niconico(く) 2018.6.28

ニコニコ動画はこの移り変わり激しいIT時代で、実に4年半もの期間メジャーアップデートをしなかったんだ。

もちろん、IT関連職なら「ニコニコ動画Webサービスなのでメジャーバージョン名はあまり意味がない」という考えを持ってしまうかも知れない。

しかしながら、ユーザから見える範囲でのアップデートはこの4年半でほとんど行われていない。重要なのはユーザ視点なんだ。

その4年半の間、他の動画共有系サービスは着実にアップデートを繰り返し、動画共有系サービスの平均的な技術水準を引き上げていたが、ニコニコ動画はほどんど流れに乗らなかった。

ニコニコ動画ユーザが「Youtubeなら〜」と言ってしまうのも無理はなく、それを無視し続けたドワンゴ責任は本当に重い。

2018-05-14

anond:20180513200126

1階は虫でも防犯でも良いことはない。確率問題ではあるけど。

実は公園治安騒音で隠れ嫌悪施設

ちなみに、軽量鉄骨は木造アパート居住性は変わらない。部屋の快適さに影響するのは柱の素材じゃなくてむしろ壁。RCじゃないならまぁなんでも一緒。

2018-05-06

anond:20180506153423

大阪市内で小奇麗なワンルームだと6~7万くらいだけどあんま変わらんのね

でもワンルームで防音がしっかりしたとこって見つからん

鉄筋RCでも部屋と部屋の間が薄いとこばかり

2018-03-07

プラモだけに生きてきて46歳になった。

毎日プラモのことだけを考えてきて先日46歳になった。

定時で仕事を上がると行きつけの模型屋に寄ってひたすらプラモ

楽しくて楽しくて続けていたらこんな歳になっていた。

小学生の時に友達の家で読んだホビージャパンのSF3Dがきっかけだった。

今もマシーネンクリガーが一番好きだ。

並行作業は好きじゃないので乾燥中はネットをやったりすることを覚えた。

戦車飛行機軍艦も車も城もプラモはそれぞれの味、共通理念のようなものがあっておもしろい。

自分の中ではプラモ一種なのでRCミニ四駆もやる。

プラモってなんでこんなにおもしろいんだろう。

死ぬ時はプラモを作りながら死にたい

本気でそう思う。

自分美女だと勘違いしている整形醜女

金持ち(富者)は自分財産を騒がしく自慢する必要がない。

自分に自信があるなら、他人に誇示する必要もなく、静かに事実だけを短く言えばいい。

美女自分の美貌を騒がしく自慢する必要がない。

自分の美貌に自信があるなら、顔に塗装するような化粧をする必要は当然ないし、簡単な装いでも多くの人を魅了(魅惑)することができる。


自信がある金持ち自分を豊かであるように偽装する必要はない。すでに金持ちからだ。

自分の美貌に自信がある人は、顔を削って修正する必要など感じない。すでに美女からだ。


貧しい者は金持ちを狂ったように攻撃する。

心の醜いブスは、美女攻撃する。

自信がなく劣等で無能で醜い者ほど、偽装して整形し、成功した人たちを攻撃する。


http://news.naver.com/main/read.nhn?mode=LPOD&mid=sec&oid=001&aid=0009930580&isYeonhapFlash=Y&rc=N

ムン大統領日本の「歴史無視」を叱咤…「戦争犯罪言葉では隠せない」

独島慰安婦問題に対する真の謝罪反省を促す「隣国和解平和共存の道を歩く」…パートナー関係を強調(ソウル=聯合ニュース

2TK89m1zJsM2gGO1513843337_1513843543 (1)


http://news.naver.com/main/read.nhn?oid=018&sid1=100&aid=0004046882&mid=shm&mode=LSD&nh=20180301165847

ムン大統領臨時政府正統性を強調して「歴史戦争」勝負総合

ムンジェイ大統領が1日午前、ソウル西大門刑務所歴史館で開かれた第99周年3・1節記念式で記念演説をしている。

2TK89m1zJsM2gGO1513843337_1513843543


半世紀以上も日本人たちは誤解していた。韓国反日発狂して反日発作を起こす理由について、「日本が間違っていたからだ」と誤解をしていたのだ。

もちろん日本左翼マスコミがそう誤解するように誘導していたというのも理由の一つだが、最大の理由はそうではない。米国に敗れた後、平和病にかかった日本人が自ら勘違いをしていたのだ。

長い間そういう勘違いをしていた日本人は、今やっと真実悟りはじめている。


韓国反日発狂して反日発作を起こす理由は何か。

真実は、純粋に自信がなくて劣等感に満ちている韓国が、自分たちの歴史や国になんの自信も誇り(自負心)も持てないことが理由だ。反日を通じて歪曲した感情を満足させるためだったのだ。

近代価値はどこにもなく、低質な反日原理主義国家アイデンティティ韓国は、上から目線日本非難しなければ精神を維持することができないのだ。

精神病の状態のこんな状態が、韓国の劣等性を証明している。


問題本質韓国の根強い劣等感にあるので、日本いくら援助して謝罪をしても意味がない。

反日韓国国家アイデンティティから韓国は「日本は当然韓国お金技術を捧げなければならない」と思っていて、むしろ日本が今までしてきた援助や謝罪は、韓国反日原理主義助長する結果だけをもたらした。

人間ゴミの考え方である

かれらは「金持ち邪悪なので、乞食を当然助けなければならない」という考え方を持っている。

乞食の考え方を持っている醜い韓国に、自信や価値や誇りなどない。

みじめなので、必死扇動して包装するのである

日本が作ったものを見て起源韓国だと言い張るほどに。


韓国のように、米国USA)が英国England)を狂ったように攻撃して発狂して発作を起こすか?

米国英国から独立して生まれた国だが、米国韓国のように発狂する必要などない。

米国には米国価値があり、米国アイデンティティがあり、米国の誇りがあるからである

自信がある美女他人容姿を羨望する必要もなく削り下ろす必要もないのだ。


しか劣等感で団結したブス(醜女)は違う。

すべてを偽装し、自分の顔を整形し、他人を削り下ろす。

自らの独立したわけでなく、独立に及ぼした影響はホコリ以下の微々たるものしかなく、自ら近代化する能力もなく、いまだに事大(小中華)の考え方を持っている韓国が持てる考え方というのは、朝鮮ソンビがそうだったように反日をすることだけである


韓国自由民主主義価値を持っていた場合は違うが、現実にはナチズムと同じようなナショナリズムethnic)の考え方を持っているのが韓国なので、最初から日本がどういう態度だろうが、韓国劣等感がなくなる可能性はなかったのだ。


それなのに異常を正常だと勘違いしているので救済する方法はどこにもない。

いくらほざいたところで整形顔は整形顔だ。

整形した顔を正常だと勘違いしている精神なのだから、自ら変わる可能性などない。


おぞましくて醜い集団は、血の涙を流さなければならない。

IMFを経たにも関わらず何も気付かず成長を自ら拒否した情けなくて醜い者に、世界は優しい笑顔など投げてくれない。

ソドム(Sodom)とゴモラ(Gomorrah)は浄化される以外、方法がない。


「無明」というブログの人

引用ソース

https://blog.naver.com/zero53/221219604672

ログイン ユーザー登録
ようこそ ゲスト さん