首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

一个极为奇怪的有关问题,高手帮小弟我看看

2012-02-14 
一个极为奇怪的问题,高手帮我看看 - C++ Builder / Windows SDK/API前面的一大堆都不重要,重要的是case WM

一个极为奇怪的问题,高手帮我看看 - C++ Builder / Windows SDK/API
前面的一大堆都不重要,重要的是case WM_HSCROLL这个消息段。
我做了一个音乐播放器添加调节音量的功能,但有一个非常奇怪的问题,就是在我拖动滑块的时候,如果拖到某个地方,再拖回起始位置,再拖->再到起始位置->再拖->再到起始位置,一直往复,声音会越来越小,直到消失,为什么,为什么,为什么啊啊啊啊啊啊啊,我猜想可能是拖到起始位置是音量总大小发生了变化,但知识匮乏,不知每次往复到底会减小多少,他的总大小从某个位置拖回来是怎么计算的?高手解答。代码如下。我就少复制一点了,看着头晕。
#include "stdafx.h"
#include "音乐播放器.h"
static TCHAR quanju[MAX_PATH];
static int i1;
#pragma comment(lib,"Winmm.lib")
int APIENTRY _tWinMain(HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPTSTR lpCmdLine,
  int nCmdShow)
{


  DialogBox(hInstance,MAKEINTRESOURCE(1),NULL,hanshu);

return 0;
}
BOOL CALLBACK hanshu(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
{

  HWND hwnd=GetDlgItem(hdlg,gundong);


  OPENFILENAME ofn;


char szFile[256];


ZeroMemory(&ofn,sizeof(ofn));


ofn.lStructSize = sizeof(ofn);


ofn.lpstrFile = szFile;


ofn.lpstrFile[0] = TEXT('\0');


ofn.nMaxFile = sizeof(szFile);


ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0mp3\0*.mp3\0");


ofn.nFilterIndex = 1;


ofn.lpstrFileTitle = NULL;


ofn.nMaxFileTitle = 0;


ofn.lpstrInitialDir = NULL;

ofn.hwndOwner = hdlg;


ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; 


switch(message)

{

case WM_HSCROLL:

{



TCHAR i2[256];

TCHAR i3[256];

TCHAR i4[256];

TCHAR i5[256];



int i;

int yinliang=SendMessage(GetDlgItem(hdlg,gundong),TBM_GETPOS,0,0);

GetShortPathName(quanju,i2,sizeof(i2));

if(yinliang==0)

{


wsprintf(i3,"status %s volume",i2);


mciSendString(i3,i4, sizeof(i4), 0 );

i1=atoi(i4);

i=i1-yinliang;

wsprintf(i5,"setaudio %s volume to %i",i2,i);

mciSendString(i5,"",0,NULL);

}

else 

{

  i=i1-yinliang;
  wsprintf(i5,"setaudio %s volume to %i",i2,i);

  mciSendString(i5,"",0,NULL);

}

}

break;

case WM_INITDIALOG:

SendMessage(GetDlgItem(hdlg,gundong),TBM_SETRANGEMIN,(WPARAM)TRUE,0);

SendMessage(GetDlgItem(hdlg,gundong),TBM_SETRANGEMAX,(WPARAM)TRUE,1000);

SendMessage(GetDlgItem(hdlg,gundong),TBM_SETPOS,(WPARAM)TRUE,0);

break;


[解决办法]
好,什么问题?
[解决办法]
提供解决方法出来。
[解决办法]
#include "音乐播放器.h"

热点排行