microsoft / microsoft/Windows-classic-samples
D2D Analogue Clock time resolution is one sixtieth of a second instead of one second
Open
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 5.7k
- Forks
- 3.3k
- PR merge metrics
- No merged PRs in 30d
Description
The DBJ tagged comment below shows where is a bug:
BOOL MainWindow::InitializeTimer()
{
m_hTimer = CreateWaitableTimer(NULL, FALSE, NULL);
if (m_hTimer == NULL)
{
return FALSE;
}
LARGE_INTEGER li = {0};
if (!SetWaitableTimer(m_hTimer, &li, (1000 /* DBJ: this was a bug: /60 */), NULL, NULL,FALSE))
{
CloseHandle(m_hTimer);
m_hTimer = NULL;
return FALSE;
}
return TRUE;
}
Also, the default cursor is not set but that is minor.
BOOL Create(
PCWSTR lpWindowName,
DWORD dwStyle,
DWORD dwExStyle = 0,
int x = CW_USEDEFAULT,
int y = CW_USEDEFAULT,
int nWidth = CW_USEDEFAULT,
int nHeight = CW_USEDEFAULT,
HWND hWndParent = 0,
HMENU hMenu = 0
)
{
WNDCLASS wc = {0};
wc.lpfnWndProc = DERIVED_TYPE::WindowProc;
wc.hInstance = GetModuleHandle(NULL);
wc.lpszClassName = ClassName();
// DBJ: added a default cursor
// otherwise WIN32 will not return to it after certain events
// and that will leave the app cursor in "not as arrow" state, on ocassions
// and on startup, cursor might stay as waiting cursor
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
RegisterClass(&wc);
m_hwnd = CreateWindowEx(
dwExStyle, ClassName(), lpWindowName, dwStyle, x, y,
nWidth, nHeight, hWndParent, hMenu, GetModuleHandle(NULL), this
);
return (m_hwnd ? TRUE : FALSE);
}
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate MainWindow::InitializeTimer and the Create entry point in the D2D Analogue Clock sample. Inspect the waitable-timer interval and window-class cursor setup, then verify that the clock updates at one-second resolution and the default arrow cursor is restored as described.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100