ラジオボタン

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
きのこのこのこ

ラジオボタン

#1

投稿記事 by きのこのこのこ » 15年前

ダイアログボックスの使い方が良く分からなかったので使うのをやめ、それに伴って以前リソースについてした質問を取り消し、新たな質問をさせて頂きたいと思います

IDM_ONにチェックが入っている時、ラジオボタンで選択したIDM_BGM1~IDM_BGM6で再生するBGMを切り替えられるようにしたいのですが、ラジオボタンが選択されているという状態をどうやってif文で書けばいいか分からないので教えてください

WM_CREATEのbgm_open()でMIDIファイルを開いてIDM_ONのチェックがとれたときにbgm_stop()で再生を止め、チェックが入った時にmFlagを1にします(ラジオボタンでBGMを選択してもIDM_ONにチェックが入っていないと再生しないようにしたいと思っています)
選択したラジオボタンに応じてm_typeという変数を1~6にして、Sound.cで再生するBGMを区別させる予定です
switch(msg){
    case WM_CREATE:
           bgm_open();
          hMenu = GetMenu(hWnd);
      break;
        case WM_COMMAND:
            switch(LOWORD(wp)){
                  case IDM_ON:
                    uState = GetMenuState(hMenu , IDM_ON , MF_BYCOMMAND);
                    if(uState & MFS_CHECKED){        //チェックされていたらチェックはずす
                        CheckMenuItem(hMenu, IDM_ON , MF_BYCOMMAND | MFS_UNCHECKED);
                        mFlag = 0;
                        m_type = 0;
                        bgm_stop();
                    }
                    else{                            //チェックされていなかったらチェックする
                           CheckMenuItem(hMenu , IDM_ON , MF_BYCOMMAND | MFS_CHECKED);
                        mFlag = 1;
                    }
                    break;
                case IDM_BGM1:
                case IDM_BGM2:
                case IDM_BGM3:
                case IDM_BGM4:
                case IDM_BGM5:
                case IDM_BGM6:
                    CheckMenuRadioItem(hMenu , IDM_BGM1 , IDM_BGM6 , LOWORD(wp) , MF_BYCOMMAND);



Sound.c
#include<stdio.h>
#include<windows.h>
#include<mmsystem.h>

static char str1[256] , str2[256] , str3[256] , str4[256] , str5[256] , str6[256];

void bgm_open()
{
    mciSendString("open ./sound/midi_01.mid" , str1 , sizeof(str1) , NULL);
    mciSendString("open ./sound/midi_02.mid" , str2 , sizeof(str2) , NULL);
    mciSendString("open ./sound/midi_03.mid" , str3 , sizeof(str3) , NULL);
    mciSendString("open ./sound/midi_04.mid" , str4 , sizeof(str4) , NULL);
    mciSendString("open ./sound/midi_05.mid" , str5 , sizeof(str5) , NULL);
    mciSendString("open ./sound/midi_06.mid" , str6 , sizeof(str6) , NULL);
}

void bgm_stop()
{
    mciSendString("stop all" , str1 , sizeof(str1) , NULL);
}

void bgm_close()
{
    mciSendString("close all" , str1 , sizeof(str1) , NULL);
}

void bgm_play(int m_type)
{
    mciSendString("stop all" , str1 , sizeof(str1) , NULL);
    if(m_type == 1){
        mciSendString("play song from 0" , str1 , sizeof(str1) , NULL);
    }
    if(m_type == 2){
        mciSendString("play song from 0" , str2 , sizeof(str2) , NULL);
    }
    if(m_type == 3){
        mciSendString("play song from 0" , str3 , sizeof(str3) , NULL);
    }
    if(m_type == 4){
        mciSendString("play song from 0" , str4 , sizeof(str4) , NULL);
    }
    if(m_type == 5){
        mciSendString("play song from 0" , str5 , sizeof(str5) , NULL);
    }
    if(m_type == 6){
        mciSendString("play song from 0" , str6 , sizeof(str6) , NULL);
    }
}
画像

“C言語何でも質問掲示板” へ戻る