It sounds like your not converting between the proper views. A view’s frame is set to the coordinates of it’s superview, not its own internal coordinates, so if you were trying to convert the origin of a view to window coordinates, you would need to use the superview:
[[self superview] convertPoint:self.frame.origin toView:theWindow];
However, it is even simpler to convert the zero point from the view itself to the window. The two pieces of code are equivalent, and so it isn’t necessary to use the origin at all.
[self convertPoint:CGPointZero toView:theWindow];