puhbuttons (или вход клавиатуры) просто обновление перемен! к кодированию, и хотя/потому что я зашел так далеко, не задавая никаких реальных людей каких -либо реальных вопросов, и всего лишь через несколько недель я уверен, что, хотя мой код в основном работает, я делаю много неправильного. Я абсолютно опубликую все, что у меня есть, если речь идет об этом, но вот того, я надеюсь, будет достаточно для этой единственной проблемы.
Код: Выделить всё
//container for Scaling and Shifting functions between screen and Mandelbrot values
struct ScreenScaler {
float xScale;
float yScale;
float xPos;
float yPos;
float xMin, xMax;
float yMin, yMax;
void initSpace (ScreenScaler &space) {
double zoomingBar = SendMessage(hSlider2, TBM_GETPOS, 0, 0);
float Zoom = (zoomingBar / 5);
float SlideX = SendMessage(hSlider3, TBM_GETPOS, 0, 0);
float SlideY = SendMessage(hSlider4, TBM_GETPOS, 0, 0);
space.xScale = 1 + Zoom;
space.yScale = 1 + Zoom;
space.xPos = 0; //(SlideX / 10) - 4;
space.yPos = (SlideY / 10) - 4;
space.xMin = ((-2) / space.xScale) + space.xPos;
space.xMax = ((2) / space.xScale) + space.xPos;
space.yMin = ((-2) / yScale) + space.yPos;
space.yMax = ((2) / yScale) + space.yPos;
}
void left(ScreenScaler *lscale, bool movleft) {
if (movleft) {
lscale->xPos -= 1.0; // I am passing these members by reference/pointer hoping to change their values directly. with the trackbars this works great, but buttons and keys stubbornly refuse to increment..
}
}
void right(ScreenScaler *rscale) {
rscale->xPos += 1.0;
}
};
{
bool movleft = false; //so I am getting here for sure, if I uncomment the messagebeep, it sounds when its button is pressed.
//bool right = false; //id like this to be a continuous shifting while the button is held (the sound of the messagebeep implies this is already happening), as I am trying to move left and right/up and down//
if (LOWORD(wParam) == VK_LEFT)
/*case VK_LEFT:*/ {
movleft = true;
scale.left(&scale, movleft);
scale.xPos = scale.xPos -= 1;
//MessageBeep(MB_OK);
break;
}
if (LOWORD(wParam) == VK_RIGHT)
/*case VK_RIGHT: */{
scale.right(&scale);
scale.xPos = scale.xPos += 1;
//MessageBeep(MB_COMPOSITE);
break;
}
// }
return 0;
}
< /code>
(Чтобы ответить, почему есть лопатка на одном, а не другое, это, конечно, еще одна попытка заставить структуру распознать, что я меняю его.) //ScreenScaler scale declared earlier
float cx = std::lerp(scale.xMin, scale.xMax, j);
float cy = std::lerp(scale.yMin, scale.yMax, i);
< /code>
Я попытался поймать WM_Command или WM_NOTIFY Вместо этого я пытался создать кнопки (хотя и не пытался сделать подклассы, и да, с BS_NOTIFY в соответствующем случае) я попытался увеличить непосредственно из случая, а не пустота в структуре, я пытался иметь эти иборы за пределами структуры, различные пропутывания '&' & '************************** Как только трекбары работают непрерывно, и самое приятное то, что когда это находится в его конечной форме, это не будет кнопок, это будут напряжения на булавках.
Сейчас значения приращения огромны (1 здесь большие), просто потому, что я хочу быть уверенным, что я буду видеть чертовски, когда он работает, но план, чтобы быть намного меньше, и все еще больше, когда он будет определен, и все еще будет определено, что все еще будет в дальнейшем. это напряжение).
Как окончательный объяснитель/отказ от ответственности, я также сделал это специально, не искавая, как сделать то, что я делаю , иду больше для общего обучения и переводив то, что я нахожу в этот проект, пока он не функционирует с ним.
Подробнее здесь: https://stackoverflow.com/questions/794 ... ns-or-keys