約 1,917,270 件
https://w.atwiki.jp/element10plus/pages/14.html
以下に、本件のランダム型アイテム提供の実際の結果についてまとめる。 347 名前:名無しオンライン[sage] 投稿日:2015/08/06(木) 01 50 41.00 ID zffNzuEU [1/2] 信じてくれるかわかりませんが 1です 今回の報告ありがとうございました このスレを立てたときまさかこんなことになるとは思いもしなかったです 今後このような入手難易度の差がない又は種類が少ないスクラッチはこのようなスレを立てたいと思います 大雑把ではありますが結果を報告したいと思います 348 名前:名無しオンライン[] 投稿日:2015/08/06(木) 02 38 03.55 ID zffNzuEU [2/2] 強化リスク軽減(完全)…422個 属性強化+10%…79個 クラス追加合計…379個 属性変化合計…267個 特殊能力追加合計…228個 フードデバイス合計…170個 マグ支援枠拡張デバイス…71個 合計…1616個(回) 各確率 強化リスク軽減(完全)…26% 属性強化+10%…5% クラス追加…23% 8種類なので各2.875% 属性変化…17% 6種類なので各2.833% 特殊能力追加…14% 5種類なので各2.8% フードデバイス…11% 4種類なので各2.75% マグ支援枠拡張デバイス…4% 以上になります 皆さん協力ありがとうございました 一応あげときます @pizza_ship9 スクラッチ合計で500回引いた結果です。 ☆0.5の入手“ 難易度”の中でヒドいバラつきがあるように思えます。意図的に強化リスク軽減(完全)出やすくしているのでは? 個人的には景品表示法の優良誤認に当たると思います http //t.co/UYelF5NumP 表記と実際の確率に関しては、このブログの200~500回ガチャ引いてる奴の結果画像がわかりやすい netogepopo.blog.jp/archives/1036061349.html ttps //pbs.twimg.com/media/CLk2xxmUcAAQ-4B.png large 現実的には属性10とマグ拡張は☆1だったというのが事実だな これを認めるかシラを切り通すかでSAGEおよびHAGEの誠意が分かるというもの これな ttps //twitter.com/pizza_ship9/status/628145742490656768/photo/1 贔屓目に見ても☆1.5だわ 完全だけだろ0.5なんて 途中結果のとあまり変わっていませんが出しました http //yomogi.2ch.net/test/read.cgi/ogame3/1438150904/348 感想はなんだか酷いなって思いました どうしてかというと25%と5%と4%が同じ入手難易度だからです コメント削除の隠蔽行動やら、生主以外に支援ガチャ500回引いた人の統計データをまとめてるブログあったので貼っとく netogepopo.blog.jp/archives/1036061349.html 動画UPしました http //www.nico video.jp/watch/sm26862829 やはりというか、皆さんと同じ結果ですが こういうのは数多いほうがいいと思うので とりあえずさ、お前らせっかくクライアントにログ保存されてるんだから活用しようぜ? 知らないやつのためにパスおしえといたる ~\SEGA\PHANTASYSTARONLINE2\log\ScratchLogYYYYMMDD_xx そんで中をEXCELで開け、ないやつはオープンオフィスでいいや するとこんな中身があるからそれをピボットテーブルで整えてやると結果がでる http //www.dotup.org/uploda/www.dotup.org453163.jpg http //www.dotup.org/uploda/www.dotup.org453165.jpg まぁ完全と10%は明らかに同じ確率じゃないわなぁw 自分が引いたのをこういう形で出していって情報あつめればいいんじゃね? ガチャ500回回した人の結果。明らかに表記と実際の出やすさが違うと話題に http //twitter.com/pizza_ship9/status/628145742490656768/photo/1
https://w.atwiki.jp/nxpp/pages/20.html
*概要 irrlichtで2Dグラフィックを表示します。表示しているのは、irrlichtのロゴと背景マップ、そしてインプ二匹です。インプは二枚が交互に切り替わりアニメーションしています。片方のインプには指定色の加減合成も行っています。irrlichtの2Dグラフィック機能は、色の加算合成?とクリッピング機能がありますが、回転ができないのでノベルゲームなどの静的なゲームに向いています。 サンプルで使用されている画像 ・2ddemo.png *ソースコード #include tchar.h #include irrlicht.h #ifdef WIN32 #include windows.h #endif using namespace irr; using namespace core; using namespace video; #ifdef WIN32 int WINAPI _tWinMain( HINSTANCE,HINSTANCE,LPTSTR,int ) #else int main( int,TCHAR* ) #endif { // irrlichtを初期化。 IrrlichtDevice *device = createDevice(EDT_OPENGL, dimension2d u32 (480,360)); IVideoDriver* driver = device- getVideoDriver(); device- setWindowCaption(_T( 2D Texture Draw Sample! )); // テクスチャ読み込み ITexture* images = driver- getTexture( _T( 2ddemo.png ) ); driver- makeColorKeyTexture( images , position2d s32 (0,0) ); // 画像のインプ部分の領域設定 rect s32 imp1(349,15,385,78); rect s32 imp2(387,15,423,78); // 描画ループ while(device- run() driver) { // 時間を取得。 u32 timecount = device- getTimer()- getTime(); driver- beginScene(true, true, SColor(255,0,0,255)); // テクスチャを描画 // draw fire dragons background world driver- draw2DImage(images, position2d s32 (50,50), rect s32 (0,0,342,224), 0, SColor(255,255,255,255), true); // インプを描画。 driver- draw2DImage(images, position2d s32 (164,125), (timecount/500 % 2) ? imp1 imp2, 0, SColor(255,255,255,255), true); // 変化していく色が加算されたインプを描画。 driver- draw2DImage(images, position2d s32 (270,105), (timecount/500 % 2) ? imp1 imp2, 0, SColor(255,( timecount) % 255,255,255), true); // irrlichtのロゴを描画。 driver- draw2DImage(images, rect s32 (10,10,108,48), rect s32 (354,87,442,118)); driver- endScene(); } // デバイスの削除 device- drop(); return 0; }
https://w.atwiki.jp/dslua/pages/128.html
構文 item.add( 文字[,フラグ] ) 説明 リストダイアログに表示する内容を設定します。item.addした順番に表示されます。 引数 文字 選択肢です。フラグ チェックリストを使うときに必要な設定で、1 だと選択肢表示時にチェックが入ります。 戻り値 なし ------------------------------------------ -- リストダイアログに表示する内容を設定するサンプル item_add_sample.lua ------------------------------------------ function main() canvas.drawCls(color(255,255,255)) canvas.drawText("リストダイアログに表示する内容を設定するサンプル", 0, 0, 24, color(0,0,0)) canvas.drawText("まずは、リストダイアログを表示", 0, 50, 24, color(0,0,0)) item.clear() item.add("AAA") item.add("BBB") t = item.list( "リストダイアログ表示" ) canvas.drawText("チェックリストを表示", 0, 80, 24, color(0,0,0)) item.clear() item.add("111", 0) item.add("222", 1) t = item.check( "チェックリスト" ) canvas.drawText("選択リストラジオボタンを表示", 0, 110, 24, color(0,0,0)) item.clear() item.add("あああ") item.add("いいい") t = item.radio( "選択リストラジオボタン", 2 ) canvas.drawText("画面タッチで終了します。", 0, 160, 24, color(0,0,0)) touch(3) end main() 1.リストダイアログに表示する内容を設定するサンプルです。このサンプルでは、戻り値は利用していません。 2.チェックリストを表示します。。 3.選択リストラジオラジオボタンを表示します。 4.リストダイアログのサンプルでした。 コメント(最大10行) 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/opengl/pages/197.html
アップダウンコントロールを表示します。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_TEST 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 menu.rc #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM Exit , ID_EXIT END POPUP Test BEGIN MENUITEM てすつ , ID_TEST END POPUP Option BEGIN MENUITEM A , ID_A MENUITEM B , ID_B MENUITEM めにゅ~ , ID_Menu MENUITEM whats? , ID_Whats END MENUITEM ヘルプ , ID_Help END main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, comctl32.lib ) #include GL/freeglut/freeglut.h #include resource.h #include commctrl.h //CreateStatusWindow()のために必要 //FreeGlutのウインドウプロシージャを置き換える為の変数 WNDPROC WndProc=NULL; //元のウィンドウプロシージャ HWND hWnd2=NULL; //ウィンドウハンドル HMENU hMenu=NULL; //メニュー HWND hStatusbar; // ステータスバーのハンドル HWND hProgbar; //プログレスバーのハンドル HWND ud;//アップダウンコントロール用 HWND ud_t;//アップダウンのテキストボックス用 #define SCR_MAX 100 #define SCR_MIN 0 #define WIDTH 320 #define HEIGHT 240 //回転用 float anglex = 0.0f; //白 GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 }; //置き換えた後のプロシージャ LRESULT CALLBACK WndProc2(HWND hWnd , UINT msg , WPARAM wParam , LPARAM lParam){ switch( msg ){ case WM_SIZE //MoveWindow(hTree, 0, 0, TREE_WIDTH, TREE_HEIGHT, TRUE); SendMessage( hStatusbar, WM_SIZE, wParam, lParam ); return 0; case WM_COMMAND switch (LOWORD(wParam)){ case ID_EXIT PostQuitMessage(0); } return 0; case WM_DESTROY exit(0); break; default if(WndProc){ return CallWindowProc(WndProc,hWnd , msg , wParam , lParam); }else{ return DefWindowProc(hWnd,msg,wParam,lParam); } } } //ウィンドウの検索 BOOL CALLBACK enumWindowsProc(HWND hWnd,LPARAM lParam){ HANDLE hModule=(HANDLE)GetWindowLong(hWnd,GWL_HINSTANCE); if(GetModuleHandle(NULL)==hModule){ wchar_t ClassName[256]; GetClassNameW(hWnd,ClassName,sizeof(ClassName)/sizeof(ClassName[0])); if(wcsncmp(ClassName,L FREEGLUT ,wcslen(ClassName))==0){ hWnd2=hWnd; return FALSE; } } return TRUE; } void display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, WIDTH, HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)WIDTH / (double)HEIGHT, 1.0, 1000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(150.0,150.0,-150.0, 0.0,0.0,0.0, 0.0,1.0,0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, white); //回転 glRotatef(anglex,1.0f,0.0f,0.0f);//X軸を回転 glutSolidSphere(40.0,16,16); glutSwapBuffers(); } void idle(void){ anglex+=2.0f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); //ワイヤーフレーム glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); } bool main(int argc, char *argv[]){ glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( アップダウンコントロール ); //FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える EnumWindows(enumWindowsProc,0); if(hWnd2){ WndProc=(WNDPROC)GetWindowLong(hWnd2,GWL_WNDPROC); SetWindowLong(hWnd2,GWL_WNDPROC,(LONG)WndProc2); }else{ return false; } //メニューを作成 hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1)); if(hMenu){ SetMenu(hWnd2,hMenu); }else{ return false; } // コモンコントロール関係の初期化 InitCommonControls(); // ステータスバーを作成 hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, L ステータスバー ,hWnd2,ID_STATUS); //アップダウンコントロール ud_t=CreateWindowEx(0,L EDIT ,L ,WS_CHILD| WS_BORDER,32, 32,64, 24, hWnd2,NULL,(HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE),NULL); ShowWindow(ud_t,SW_SHOW); //アップダウンコントロール作成用API関数 ud= CreateUpDownControl(WS_CHILD |WS_VISIBLE |UDS_ALIGNRIGHT |UDS_SETBUDDYINT, 0, 0, 0, 0, hWnd2,NULL,(HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE), ud_t,//テキストボックスと兄弟Windowにする SCR_MAX,SCR_MIN,//範囲指定 0);//初期値指定 ShowWindow(ud,SW_SHOW); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return true; }
https://w.atwiki.jp/fukumotoroyale/pages/300.html
参加者一覧(退場者表示) 164話までの退場者の一覧です。オレンジの欄が退場者です。 キャラクター名をクリックしますと、そのキャラクターの最終話に移動します。 作品名 参加キャラクター アカギ 〜闇に降り立った天才〜 赤木しげる(19歳) 南郷 安岡 市川 浦部 治 平山幸雄 鷲巣巌 賭博黙示録カイジ 伊藤開司 遠藤勇次 船井譲次 安藤守 石田光司 利根川幸雄 佐原 賭博破壊録カイジ 大槻 一条 坂崎孝太郎 三好智広 賭博堕天録カイジ 坂崎美心 村岡隆 兵藤和也 銀と金 森田鉄雄 平井銀二 有賀研二 田中沙織 神威秀峰 神威勝広(四男) 吉住邦男(五男) 川松良平 天 天和通りの快男児 天貴史 井川ひろゆき 原田克美 沢田 賭博覇王伝零 宇海零 板倉 末崎 標 無頼伝涯 工藤涯 澤井 石原 最強伝説黒沢 黒沢 仲根秀平 しづか 赤松修平 残り15名/45名
https://w.atwiki.jp/sksfaq/pages/27.html
歌詞表示はされません 本イベントではカラオケシステムを使用しません、その為歌詞を表示できるモニタ等もございません。歌詞については覚えて頂くか、ご自分で歌詞カード等を用意して下さい。 ※関連項目:譜面台はありますか?
https://w.atwiki.jp/youyouhaku1928/pages/40.html
#!/usr/local/bin/perl # 掲示板2(左画面) # id=bbs2_l.cgi # update. 98.12.4 # 使用上の注意・・・漢字コードの変換が不完全ですので文字化けするおそれがあります。 # そのつもりでお使い下さい。 # 日本語コード変換ライブラリ(v2.0)の指定 # ReadParse命令で、$in{ }の変数にフォーム入力データが格納される require cgi-lib.pl ; require jcode.pl ; ReadParse; # 設置するURLを設定 $reload = http //www0.kumagaya.or.jp/cgi-bin/users/chichibu/bbs2_l.cgi ; $call = http //www0.kumagaya.or.jp/cgi-bin/users/chichibu/bbs2.cgi ; $file = "/dialup/chichibu/cgi-bin/bbs2.dat"; # データ確認デバッグモード(通常は$test=""、各画面で変数状態を見たいときは"on") $test=""; # 消去日計算 ($byo,$fun,$ji,$dd,$mm,$yy,$yobi) = localtime(time); $mm++; # 2桁化 $mm = sprintf("%.2d",$mm); $dd = sprintf("%.2d",$dd); # 西暦4桁処理 if ($yy 70) { $yy = $yy + 2000;} else { $yy = $yy + 1900;} # 本日 $ymd=$yy.$mm.$dd; #################################### # # # メインルーチン(処理の分岐) # # # #################################### # 全体の流れを決定する if ($in{ action } eq main ) { main; } else { first; } # なくても良いが最終出口を示す exit; ############################################# # # # データを読む # # # ############################################# sub read { # データを読み各連想配列に加算する # 1 2 3 4 5 6 # 日付時刻、宛先、内容、差出人、消去日、訂正用パスワード open(DB,"$file"); flock(DB,2); %data=(); $cnt=0; while ( DB ) { ($dt1,$dt2,$dt3,$dt4,$dt5,$dt6) = split(/\t/,$_); # 表示期限チェック if ($dt5 0 $dt5 = $ymd) { # 宛先毎にデータ登録件数を調べる $data{$dt2}++; $cnt++; # 右画面に漢字コードではデータを渡せないので該当するデータのキーを一つ記憶する if ($data{$dt2} == 1) {$key{$dt2} = $dt1 } } # end of if } # end of while flock(DB,8); close(DB); } # end of read ############################################# # # # 最初に処理するルーチン # # # ############################################# sub first { main; } # end of first ############################################# # # # メイン処理画面を表示する # # # ############################################# sub main { read; @key=keys(%data); @new=sort sortsb @key; # 表示出力処理 print "Content-type text/html\n\n"; print EOM; HTML HEAD TITLE 掲示板2左 /TITLE /HEAD BODY BGCOLOR="#ffffff" EOM print form method="post" action=" . $reload . " . "\n"; print input type=hidden name="action" value="main" . "\n"; print input type=submit value="最新情報表示" . "\n"; print /FORM ; print BR ."\n"; print TABLE BORDER="1" ; print TR ; print " TH 宛先 /TH TH 件数 /TH /TR \n"; # 全件 print TR ; print TD ."\n"; print A HREF = " .$call. ?action=main syurui=all page=1" TARGET="main" 全件表示 /A ."\n";; print /FONT ."\n"; print /TD ."\n"; print TD ALIGN="right" FONT COLOR= .$iro. .$cnt. /FONT /TD ."\n"; print /TD ."\n"; print /TR ."\n"; foreach (@new) { print TR ; print TD ."\n"; # ユニークとなるコード(半角)を渡す print A HREF = " .$call. ?action=main syurui= .$key{$_}. page=1" TARGET="main" .$_. /A ."\n";; print /FONT ."\n"; print /TD ."\n"; print TD ALIGN="right" FONT COLOR= .$iro. .$data{$_}. /FONT /TD ."\n"; print /TD ."\n"; print /TR ."\n"; } # end of foreach print /TABLE ; } # end of main #################################### # # 宛先を文字順にソートする(整理する) # #################################### sub sortsb { $a = $b; } ################ end of script ###################
https://w.atwiki.jp/type74rx-t/pages/70.html
効果 スキル発動時にスキル名が表示されるように、通常攻撃時にも武器の名前が表示されます。 また、武器を持たずに攻撃する場合は「素手」と表示されます。 スクリプトのダウンロード txtファイル:スクリプト
https://w.atwiki.jp/jubeat/pages/347.html
knitの称号を、メンバーズサイトで一覧表示される順に並べたもの。 初めまして ユビートはじめました jubeat 1年生 jubeat 2年生 jubeat 3年生 モテかわスリム 無冠の帝王 フレンド登録大歓迎 ライバル登録大歓迎 なりきりセレブ わんぱく男子 突撃隊長 アンチエイジング中 散歩中 昼休み中 夜勤明け ごらんの有様 海外留学中 挑戦中 充実中 おでんはじめました ゆるキャラ 今夜はカレーよ 今夜もカレーよ おなかの調子を整えたい 整いました 同窓会で告白します あなたのことが大好きです 森ガール A級イケメン 山ガール B級イケメン メガネっ娘 リーゼント メガネ男子 おかっぱ頭 雪国育ち ボリューム満点 帰国子女 コーヒーはブラック 家具はモノクロで統一 伸びるジーンズ派 ファストファッション系 シャツはイン げっ歯類を飼っています 週休6日 冷やし中華はゴマだれ派 学校帰り 部活帰り 仕事帰り 買い物帰り 旅行帰り おしゃれ探偵 やる気 30% やる気 50% やる気 80% やる気 100% 今日は誕生日 今日はあの子の誕生日 今日は記念日 お付き合い1周年 今日は結婚記念日 今日の当番 今日は漢字の小テスト 今日は理科の小テスト 美容室行かないと ややリッチ気分 給料日 ボーナス出ました 目指せ EXCELLENT パワープレー レフトハンドプレー ライトハンドプレー 片思い中 まったりプレー 苦手楽曲を克服中 ベストスコア更新狙い 今日こそ限界突破 マーカー試し中 マーカーが合わない ごり押し 悲しみ吹き飛ばし中 影武者 千両役者 器用貧乏 箱入り娘 皆勤賞 お天気さんさん IQフィンガー 若大将 秘密兵器 平成の怪物 昭和の妖精 暗黒の使者 小学生 中学生 高校生 大学生 社会人 左利き 右利き 両利き 都会っ子 地元ではNo.1 ベビーフェイス クリエーター系 サラリーマン 自営業 専務 次長 課長 KEEP君 プロ忍者 実家は林業 思春期 ねぼすけ ぴっちぴち 係長 主任 ☆ ☆☆ ☆☆☆ ☆☆☆☆ ラーメンはこってり派 ラーメンはさっぱり派 しゃぶしゃぶはポン酢で カロリーオフ なんでもマヨネーズ ライスはいつも大盛り たい焼きはしっぽから うどん派 そば派 パスタ派 ビーフン派 春雨派 耳かきが趣味 汗っかき 少年のココロ Mr.モラル 太鼓持ち 夏でもストール 料理は論外 ふとんは引きっぱなし 意外とボウリングが上手い 体育会系 文化系 俺の嫁募集中 今日は徹夜だ 君のために戦う みなさんお元気ですか 助けてください お助けしましょう まだ本気じゃない 明日から本気出す フレンドこないかな? 遠足気分 遠足前日の気分 家に着くまでが遠足 ぼちぼちかな リベンジ 満点パパ 幸せママ 前のめり人生 一指入魂 いつもスマイル 夢は叶う 5分前行動 ピンチはチャンス! 練習中 スランプ オールラウンダー 千慮の一失 RATING SSSSSSSS 目に見えぬ壁 成長中 開眼 覚醒 凄業 神業 マッチメーカー 奇跡の人 勝負強い 勝負弱い 圧倒 焦げキュン 四天王 赤い特攻隊長 緑の万年番長 はぐれ子羊 下剋上 トウダイモトクラシー フラワーロード せっかちなワタシ Hot Maestro Fire Maestro ALT-MATE ALT-LOVER BLACK NIGHT BLACK STAR シルバー・メッキーズ ゴールド・メッキーズ 差横行うへDes みなさ?ん最高Des-ロ? Super Queen Gorgeous Queen THE COMPLETE OF L Vs. G THE CONQUEST OF L Vs. G Synth Junkie SYNTHESIZER EXPERT 肉球男爵 アルパカMaster Fusion Man Fusion Star SILKY WORLD SILKY MASTER Hell Maestro Heaven Maestro Pretty Girl Pretty Lover ECO-MASTER ECO-KING 聖剣の持ち主 ニョアの一番弟子 bass 2 bass great bass 2 bass Jimmy大浴場 Jimmy海水浴場 Jumping Master Jumping Master GT techno girl ハピハピ ガール R B mammy R B STAR 究極J-BOYS クライマックスJ-BOYS IN THE NAME OF LOVE IN THE NAME OF WORLD Special One Special Thing LOVE SINGER GOLD LOVE SINGER PLATINUM with DJ YOSHITAKA with 朱雀 Folk Dancer Scottish Dancer シャイボーイ サングラスマン 撫子姫 TOMOSUKE城主 LOVE COMBO LOVE STORM Hardcore fan Hardcore mania ケンタウロス アンドロメダ こどものねこ おとなのねこ 少年ビッグウェーブ 少年色のオーバードライブ 小さなコイノチカラ 大きなコイノチカラ beatnation staff beatnation crew BLACK DIAMOND BLACK JOKE Snow-Muu-Master Snow-Muu-King Polar-Muu-Master Polar-Muu-King Cross-Muu-Master Cross-Muu-King Russian-Muu-Dancer Russian-Muu-King Slang Master Slang Master GT Green-Muu-Dancer Green-Muu-King わくわく夏休み ライバルを超えたい! デッドヒート 奇跡の好敵手 ライバル超え ユビンジャーピンク ユビンジャーイエロー 大会参加中 フルスロットル!! 更なる高みへ 紅一点 ミックスベジタブル みどり組 あか組 アイ ラブ あ行 勝ち気のか行 さすがのさ行 楽しいた行 ハッピーは行 楽してら行 歌姫 歌王子 女の子同盟 男の子戦隊 ピカピカ動物園 英語勉強中 日本語勉強中 ☆↑?&…()./! お財布レス生活 休日は鯉にエサやり 特技はイーアルカンフー 好きな食べ物はプリン
https://w.atwiki.jp/opengl/pages/115.html
右クリックでポップアップメニューを表示します。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_Dialog 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define ID_TEXT 109 #define ID_1 110 #define ID_2 111 #define ID_3 112 #define ID_popup 113 #define IDM_END 114 menu.rc #include windows.h #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM Exit , ID_EXIT END POPUP Dialog BEGIN MENUITEM ダイアログ , ID_Dialog END POPUP Option BEGIN MENUITEM A , ID_A MENUITEM B , ID_B MENUITEM めにゅ~ , ID_Menu MENUITEM whats? , ID_Whats END MENUITEM ヘルプ , ID_Help END OPTDLG DIALOG DISCARDABLE 0, 0, 121, 69 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION オプション FONT 9, MS Pゴシック BEGIN DEFPUSHBUTTON OK ,IDOK,7,38,50,14 PUSHBUTTON キャンセル ,IDCANCEL,61,37,50,14 LTEXT ダイアログです。 ,ID_TEXT,36,19,48,8 END POPUP MENU DISCARDABLE BEGIN POPUP ダミー BEGIN MENUITEM 終了 , IDM_END POPUP オプション BEGIN MENUITEM 1番目 , ID_1 MENUITEM 2番目 , ID_2 MENUITEM 3番目 , ID_3 MENUITEM popup , ID_popup END END END main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, comctl32.lib ) #include GL/freeglut/freeglut.h #include resource.h #include commctrl.h //CreateStatusWindow()のために必要 //FreeGlutのウインドウプロシージャを置き換える為の変数 WNDPROC WndProc=NULL; //元のウィンドウプロシージャ HWND hWnd2=NULL; //ウィンドウハンドル HMENU hMenu=NULL; //メニュー HWND hStatusbar; // ステータスバーのハンドル HINSTANCE hInstance; //インスタンスハンドル //Windowのサイズ int width = 320; int height = 240; //回転用 float anglex = 0.0f; //白 GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 }; LRESULT CALLBACK DlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp){ switch (msg) { case WM_INITDIALOG return FALSE; case WM_COMMAND switch (LOWORD(wp)) { case IDOK EndDialog(hDlgWnd, IDOK); break; case IDCANCEL EndDialog(hDlgWnd, IDCANCEL); break; default return FALSE; } default return FALSE; } return TRUE; } //置き換えた後のプロシージャ LRESULT CALLBACK WndProc2(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp){ POINT pt; HMENU hmenu,hSubmenu; switch( msg ){ case WM_RBUTTONDOWN pt.x = LOWORD(lp); pt.y = HIWORD(lp); hmenu = LoadMenu((HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), L POPUP ); hSubmenu = GetSubMenu(hmenu, 0); ClientToScreen(hWnd, pt); TrackPopupMenu(hSubmenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hWnd, NULL); DestroyMenu(hmenu); return 0; case WM_SIZE SendMessage( hStatusbar, WM_SIZE, wp, lp ); return 0; case WM_COMMAND switch (LOWORD(wp)){ case ID_Dialog DialogBox(hInstance, L OPTDLG , hWnd, (DLGPROC)DlgProc); break; case ID_EXIT PostQuitMessage(0); break; } return 0; case WM_DESTROY exit(0); break; default if(WndProc){ return CallWindowProc(WndProc,hWnd , msg , wp , lp); }else{ return DefWindowProc(hWnd,msg,wp,lp); } } } //ウィンドウの検索 BOOL CALLBACK enumWindowsProc(HWND hWnd,LPARAM lParam){ HANDLE hModule=(HANDLE)GetWindowLong(hWnd,GWL_HINSTANCE); if(GetModuleHandle(NULL)==hModule){ wchar_t ClassName[256]; GetClassNameW(hWnd,ClassName,sizeof(ClassName)/sizeof(ClassName[0])); if(wcsncmp(ClassName,L FREEGLUT ,wcslen(ClassName))==0){ hWnd2=hWnd; return FALSE; } } return TRUE; } void display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)width / (double)height, 1.0, 1000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(150.0,150.0,-150.0, 0.0,0.0,0.0, 0.0,1.0,0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, white); //回転 glRotatef(anglex,1.0f,0.0f,0.0f);//X軸を回転 glutSolidSphere(40.0,16,16); glutSwapBuffers(); } void idle(void){ anglex+=2.0f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); //ワイヤーフレーム glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); } bool main(int argc, char *argv[]){ glutInit( argc, argv); glutInitWindowPosition(100, 100); glutInitWindowSize(width, height); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( ポップアップメニュー ); //FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える EnumWindows(enumWindowsProc,0); if(hWnd2){ WndProc=(WNDPROC)GetWindowLong(hWnd2,GWL_WNDPROC); SetWindowLong(hWnd2,GWL_WNDPROC,(LONG)WndProc2); }else{ return false; } //メニューを作成 hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1)); if(hMenu){ SetMenu(hWnd2,hMenu); }else{ return false; } // コモンコントロール関係の初期化 InitCommonControls(); // ステータスバーを作成 hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, L ステータスバー ,hWnd2,ID_STATUS); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return true; }